llvm-project/llvm/lib/IR
Florian Hahn d307174e1d [ConstantRange] Use APInt::or/APInt::and for single elements.
Currently ConstantRange::binaryAnd/binaryOr results are too pessimistic
for single element constant ranges.

If both operands are single element ranges, we can use APInt's AND and
OR implementations directly.

Note that some other binary operations on constant ranges can cover the
single element cases naturally, but for OR and AND this unfortunately is
not the case.

Reviewers: nikic, spatel, lebedev.ri

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D76446
2020-04-01 09:50:24 +01:00
..
AbstractCallSite.cpp [Attributor] Use abstract call sites to determine associated arguments 2019-12-31 01:33:22 -06:00
AsmWriter.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
AttributeImpl.h [NFC] Factor out function to detect if an attribute has an argument. 2020-02-03 22:27:24 +01:00
Attributes.cpp [AssumeBundles] Enforce constraints on the operand bundle of llvm.assume 2020-03-11 23:53:48 +01:00
AutoUpgrade.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
BasicBlock.cpp [CFG/BasicBlock] Rename succ_const to const_succ. [NFC] 2020-03-25 12:40:55 -07:00
CMakeLists.txt Fixed [AssumeBundles] Move to IR so it can be used by Analysis 2020-03-10 18:02:39 +01:00
Comdat.cpp
ConstantFold.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantFold.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.cpp [ConstantRange] Use APInt::or/APInt::and for single elements. 2020-04-01 09:50:24 +01:00
Constants.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantsContext.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
Core.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
DIBuilder.cpp Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
DataLayout.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DebugInfo.cpp Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
DebugInfoMetadata.cpp [DwarfDebug] Fix an assertion error when emitting call site info that combines two DW_OP_stack_values 2020-03-17 12:51:49 -07:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DiagnosticPrinter.cpp
Dominators.cpp [Dominators] Use Instruction::comesBefore for block-local queries, NFC 2020-02-20 16:41:51 -08:00
FPEnv.cpp [FEnv] Constfold some unary constrained operations 2020-03-28 12:28:33 +07:00
Function.cpp Add <128 x i1> as an intrinsic type 2020-02-19 09:38:13 -06:00
GVMaterializer.cpp
Globals.cpp Implement -fsemantic-interposition 2020-01-31 14:02:33 +01:00
IRBuilder.cpp Reapply [IRBuilder] Always respect inserter/folder 2020-02-19 20:51:38 +01:00
IRPrintingPasses.cpp [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
Instructions.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
IntrinsicInst.cpp [VP,Integer,#1] Vector-predicated integer intrinsics 2020-03-19 10:51:47 +01:00
KnowledgeRetention.cpp Fix 7093b92a13 2020-03-31 19:47:01 +02:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp [Remarks] Fix gcc build 2020-02-04 17:43:59 -08:00
LLVMContextImpl.cpp Make dropTriviallyDeadConstantArrays not quadratic 2020-01-21 16:06:46 +01:00
LLVMContextImpl.h Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
LLVMRemarkStreamer.cpp Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
LegacyPassManager.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MDBuilder.cpp [MDBuilder] Don't use stable sort for sorting integers. 2020-03-28 21:19:46 +01:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
Metadata.cpp [APFloat] Make use of new overloaded comparison operators. NFC. 2020-03-06 16:42:53 +00:00
MetadataImpl.h
Module.cpp RNG: Take pass name as argument instead of pass pointer. 2020-01-31 14:21:40 -05:00
ModuleSummaryIndex.cpp [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle() 2020-03-01 19:17:21 +02:00
Operator.cpp [InstCombine] GEPOperator::accumulateConstantOffset does not support scalable vectors 2020-03-18 14:58:46 +00:00
OptBisect.cpp
Pass.cpp [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
PassInstrumentation.cpp
PassManager.cpp Add PassManagerImpl.h to hide implementation details 2020-02-03 11:15:55 -08:00
PassRegistry.cpp
PassTimingInfo.cpp [Legacy][TimePasses] allow -time-passes reporting into a custom stream 2019-03-22 23:11:08 +00:00
ProfileSummary.cpp
SafepointIRVerifier.cpp [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
Statepoint.cpp
SymbolTableListTraitsImpl.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Type.cpp [llvm][Type] Return fixed size for scalar types. [NFC] 2020-03-27 22:23:46 +00:00
TypeFinder.cpp [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Use.cpp
User.cpp Basis of dropping uses in llvm.assume. 2020-03-12 10:10:22 +01:00
Value.cpp [AliasAnalysis] Misc fixes for checking aliasing with scalable types. 2020-03-18 12:28:47 -07:00
ValueSymbolTable.cpp
Verifier.cpp [Verifier] Verify matrix dimensions operands match vector size. 2020-04-01 09:21:39 +01:00