llvm-project/llvm/test/Transforms
Johannes Doerfert 5ef18e2421 [Attributor] Use AAValueSimplify to simplify returned values
We should use AAValueSimplify for all value simplification, however
there was some leftover logic that predates AAValueSimplify in
AAReturnedValues. This remove the AAReturnedValues part and provides a
replacement by making AAValueSimplifyReturned strong enough to handle
all previously covered cases. Further, this improve
AAValueSimplifyCallSiteReturned to handle returned arguments.

AAReturnedValues is now much easier and the collected returned
values/instructions are now from the associated function only, making it
much more sane. We also do not have the brittle logic anymore that looks
for unresolved calls. Instead, we use AAValueSimplify to handle
recursion.

Useful code has been split into helper functions, e.g., an Attributor
interface to get a simplified value.

Differential Revision: https://reviews.llvm.org/D103860
2021-07-10 15:52:36 -05: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] Use AAValueSimplify to simplify returned values 2021-07-10 15:52:36 -05: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 [ARM] Set the immediate cost of GEP operands to 0 2021-06-30 19:19:03 +01: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 [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +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 Revert "Transform memset + malloc --> calloc (PR25892)" 2021-07-09 16:26:48 +03: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 Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +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 an option to specializing literal constant 2021-06-30 11:26:44 +08: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 [IndVarSimplify][X86] Regenerate loop-invariant-conditions.ll test checks 2021-07-07 13:58:28 +01:00
IndirectBrExpand
InferAddressSpaces [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -07:00
InferFunctionAttrs Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
Inline Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
InstCombine Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04:00
InstMerge
InstNamer
InstSimplify [FPEnv][InstSimplify] Constrained FP support for NaN 2021-07-09 11:26:28 -04: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] Preserve variables externally initialized. 2021-07-08 10:48:19 -04:00
JumpThreading [BasicAA] Handle PHIs without incoming values gracefully 2021-06-07 21:39:01 +00:00
LCSSA
LICM Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
LoadStoreVectorizer [LoadStoreVectorizer] Support opaque pointers 2021-06-27 15:42:16 +02:00
LoopBoundSplit [LoopBoundSplit] Ignore phi node which is not scevable 2021-06-09 09:44:36 +01:00
LoopDataPrefetch
LoopDeletion [LoopDeletion] Handle switch in proving that loop exits on first iteration 2021-07-09 18:03:34 +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 [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -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 autogen two tests for ease of update 2021-06-30 11:47:36 -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 [SCEVExpander] Support opaque pointers 2021-07-07 20:47:59 +02:00
LoopTransformWarning
LoopUnroll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +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 [SLP][COST][X86]Improve cost model for masked gather. 2021-07-08 11:53:30 -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] Fix crash during fusion if the same load is re-used. 2021-07-02 14:00:17 +01:00
LowerSwitch
LowerTypeTests [OpaquePtr] Support forward references in textual IR 2021-06-29 20:10:31 +02:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
MemCpyOpt [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -07:00
MergeFunc
MergeICmps Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions." 2021-06-24 19:24:34 -07: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 [ObjC][ARC] Prevent moving objc_retain calls past objc_release calls 2021-07-05 12:16:15 -07:00
OpenMP [Attributor] Use AAValueSimplify to simplify returned values 2021-07-10 15:52:36 -05:00
PGOProfile [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. 2021-06-17 14:15:12 -07:00
PhaseOrdering [PhaseOrdering] add tests for vector cmp reductions; NFC 2021-07-09 15:32:12 -04:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
Reassociate Partial Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-06-24 09:46:38 +01: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 [ConstantRanges] Use APInt for constant case for urem/srem. 2021-06-30 11:18:20 +01:00
SLPVectorizer [SLP] Do not make an attempt to match reduction on already erased instruction. 2021-07-09 17:13:15 -07: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 [AFDO] Require x86_64-linux in a testcase 2021-07-10 07:52:20 -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 [NewPM] Rename 'unswitch' to 'simple-loop-unswitch' in PassRegistry 2021-07-09 09:47:33 +02:00
SimplifyCFG Revert "Revert "Temporarily do not drop volatile stores before unreachable"" 2021-07-09 11:44:34 -04: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-23 19:24:56 -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 [OpaquePtr] Support forward references in textual IR 2021-06-29 20:10:31 +02:00