llvm-project/llvm/test/Transforms
Juneyoung Lee 5af8bacc94 [InstSimplify] Add more poison folding optimizations
This adds more poison folding optimizations to InstSimplify.

Since all binary operators propagate poison, these are fine.

Also, the precondition of `select cond, undef, x` -> `x` is relaxed to allow the case when `x` is undef.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D104661
2021-06-23 20:25:24 +09:00
..
ADCE Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
AddDiscriminators Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
AggressiveInstCombine
AlignmentFromAssumptions [AssumeBundles] offset should be added to correctly calculate align 2021-04-02 12:32:05 +09:00
ArgumentPromotion [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
AtomicExpand [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones 2021-05-29 08:57:27 +02:00
Attributor [Attributor] Don't print the call-graph in a hard-coded file. 2021-06-18 09:38:07 +02:00
BDCE [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
BlockExtractor
BranchFolding
CallSiteSplitting
CalledValuePropagation
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor
CodeGenPrepare Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ConstantHoisting Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ConstantMerge [ConstantMerge] Don't merge thread_local constants with non-thread_local constants 2021-04-28 23:44:20 +01:00
ConstraintElimination [ConstraintElimination] Only strip casts preserving the representation. 2021-03-26 20:07:41 +00:00
Coroutines Reapply [InstCombine] Extract bitcast -> gep transform 2021-06-21 22:03:15 +02:00
CorrelatedValuePropagation [CVP] Guard against poison in common phi value transform (PR50399) 2021-05-25 20:47:17 +02:00
CrossDSOCFI
DCE [Tests] Add willreturn to libcalls in some tests 2021-01-22 21:47:35 +01:00
DeadArgElim [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
DeadStoreElimination [DSE] Remove stores in the same loop iteration 2021-06-20 17:03:30 +01:00
DivRemPairs
EarlyCSE [FPEnv] EarlyCSE support for constrained intrinsics, default FP environment edition 2021-05-20 14:40:51 -04:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
FixIrreducible
Float2Int
ForcedFunctionAttrs
FunctionAttrs [tests] Update Transforms/FunctionAttrs/nosync.ll 2021-05-06 01:39:18 +02:00
FunctionImport Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
FunctionSpecialization [FuncSpec] Add minsize test. NFC. 2021-06-21 15:21:09 +01:00
GCOVProfiling [GCOVProfiling][test] Ensure that 'opt' drops any files in a temp directory 2021-06-20 22:48:35 +02:00
GVN [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
GVNHoist Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
GVNSink [GVNSink] auto-generate test checks; NFC 2021-04-02 13:16:35 -04:00
GlobalDCE
GlobalMerge
GlobalOpt [IR] Make TypeFinder aware of DIArgList values 2021-05-28 17:09:45 +02:00
GlobalSplit [test] Fix mix of variable use/def and regex match 2021-03-24 17:58:16 +00:00
GuardWidening
HardwareLoops [test, HardwareLoops] Fix use of var defined in CHECK-NOT 2021-03-30 15:06:32 +01:00
HelloNew
HotColdSplit
IRCE [SCEV] By more careful when traversing phis in isImpliedViaMerge. 2021-05-07 19:52:29 +01:00
IROutliner [IROutliner] Adding DebugInfo handling for IR Outlined Functions 2021-06-15 10:57:08 -05:00
IndVarSimplify [SCEV] Retain AddExpr flags when subtracting a foldable constant. 2021-06-22 11:27:51 +01:00
IndirectBrExpand
InferAddressSpaces
InferFunctionAttrs [BuildLibCalls] Remove inaccessiblememonly inference for calloc 2021-04-29 00:17:37 +02:00
Inline Remove ML inlining model artifacts. 2021-06-21 17:38:09 +00:00
InstCombine [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
InstMerge
InstNamer
InstSimplify [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
InterleavedAccess [InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass 2021-06-17 09:53:33 +01:00
Internalize [Internalize] Simplify comdat renaming with noduplicates after D103043 2021-05-28 16:58:38 -07:00
JumpThreading [BasicAA] Handle PHIs without incoming values gracefully 2021-06-07 21:39:01 +00:00
LCSSA
LICM Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
LoadStoreVectorizer LoadStoreVectorizer: support different operand orders in the add sequence match 2021-06-10 16:31:35 -07:00
LoopBoundSplit [LoopBoundSplit] Ignore phi node which is not scevable 2021-06-09 09:44:36 +01:00
LoopDataPrefetch
LoopDeletion [LoopDeletion] Exploit undef Phi inputs when symbolically executing 1st iteration 2021-06-23 11:53:48 +07:00
LoopDistribute [SCEVExpander] ReuseOrCreateCast(): use IRBuilder to actually create the cast 2021-04-19 18:38:39 +03:00
LoopFlatten [LoopFlatten] Simplify loops so that the pass can operate on unsimplified loops. 2021-05-12 19:22:01 +01:00
LoopFusion [llvm] Unbreak no-asserts testing after 18839be9c5 2021-04-27 05:46:43 -04:00
LoopIdiom [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
LoopInstSimplify
LoopInterchange [LoopInterhcange] Handle movement of reduction phis appropriately 2021-05-31 16:27:38 -04:00
LoopLoadElim [IndVars] Provide eliminateIVComparison with context 2021-03-19 12:28:22 +07:00
LoopPredication [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
LoopReroll [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
LoopRotate Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
LoopSimplify [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
LoopSimplifyCFG
LoopStrengthReduce [llvm] Update tests that got missed in adee485adf. 2021-06-23 10:29:58 +01:00
LoopTransformWarning
LoopUnroll [LoopUnroll] Use smallest exact trip count from any exit 2021-06-20 20:58:26 +02:00
LoopUnrollAndJam [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass 2021-06-08 20:30:02 +09:00
LoopUnswitch Explicitly enable the new pass manager in this test. 2021-03-25 18:10:36 -07:00
LoopVectorize [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
LoopVersioning Split a test for ease of auto update 2021-06-21 11:02:26 -07:00
LoopVersioningLICM [llvm] Update tests that got missed in adee485adf. 2021-06-23 10:29:58 +01:00
LowerAtomic
LowerConstantIntrinsics [LowerConstantIntrinsics] reuse isManifestLogic from ConstantFolding 2021-05-14 15:35:21 -07:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] In transpose opts, handle a^t * a^t 2021-06-11 09:29:43 -07:00
LowerSwitch
LowerTypeTests [LTT] Handle merged llvm.assume when dropping type tests 2021-05-25 17:02:13 -07:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
MemCpyOpt [IR] Memory intrinsics are not unconditionally `nosync` 2021-05-21 03:40:59 +02:00
MergeFunc
MergeICmps Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
MetaRenamer
NameAnonGlobals
NaryReassociate [NARY] Don't optimize min/max if there are side uses (part2) 2021-04-30 19:02:02 +07:00
NewGVN Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ObjCARC [IR] Memory intrinsics are not unconditionally `nosync` 2021-05-21 03:40:59 +02:00
OpenMP [OpenMP] Change remaining globalization from an analysis remark to missed 2021-06-22 16:52:06 -04:00
PGOProfile [llvm-profdata] Make diagnostics consistent with the (no capitalization, no period) style 2021-06-19 14:54:25 -07:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. 2021-06-17 14:15:12 -07:00
PhaseOrdering [OpenMP] Change remaining globalization from an analysis remark to missed 2021-06-22 16:52:06 -04:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [NFC][PruneEH] Autogenerate checklines in a few tests for ease of updates 2021-05-20 13:12:45 +03:00
Reassociate Revert "3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"" 2021-06-08 14:54:08 +02:00
Reg2Mem
RelLookupTableConverter/X86 [Passes] Add relative lookup table converter pass 2021-04-13 01:29:41 +00:00
RewriteStatepointsForGC Allow ptrtoint/inttoptr of non-integral pointer types in IR 2021-06-11 13:38:32 -07:00
SCCP [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
SLPVectorizer [SLP][AArch64] Add SLP vectorizer tests for XOR and AND reductions. NFC 2021-06-22 15:16:02 +01:00
SROA [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
SafeStack [SafeStack] Use proper API to get stack guard 2021-05-30 00:52:48 -07:00
SampleProfile [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
ScalarizeMaskedMemIntrin Expand masked mem intrinsics correctly wrt big-endian 2021-02-11 08:59:52 +00:00
Scalarizer Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
SeparateConstOffsetFromGEP [test] Make global in split-gep-and-gvn.ll not constant 2021-04-19 11:03:19 -07:00
SimpleLoopUnswitch [SimpleLoopUnswich] Fixa a bug on ComputeUnswitchedCost with partial unswitch 2021-06-22 16:18:00 +01:00
SimplifyCFG [NFC][SimplifyCFG] Add basic test for debuginfo preservation of `ret` tail merging 2021-06-21 23:56:54 +03:00
Sink
SpeculativeExecution
StraightLineStrengthReduce Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
StripDeadPrototypes
StripSymbols [DebugInfo] Support for signed constants inside DIExpression 2021-03-30 23:20:38 +05:30
StructurizeCFG Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
SyntheticCountsPropagation
TailCallElim [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
ThinLTOBitcodeWriter Revert "ThinLTO: Fix inline assembly references to static functions with CFI" 2021-06-22 12:10:58 -07:00
TypePromotion/ARM
UnifyFunctionExitNodes
UnifyLoopExits
Util Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
VectorCombine [VectorCombine] Limit scalarization to non-poison indices for now. 2021-06-14 16:40:14 +01:00
WholeProgramDevirt Don't use $ as suffix for symbol names in ThinLTOBitcodeWriter and other places 2021-03-29 13:03:52 +02:00