llvm-project/llvm/test/Transforms
David Sherwood 69cccb3189 [SVE] Fix isLoadInvariantInLoop for scalable vectors
I've amended the isLoadInvariantInLoop function to bail out for
scalable vectors for now since the invariant.start intrinsic is only
ever generated by the clang frontend for thread locals or struct
and class constructors, neither of which support sizeless types.
In addition, the intrinsic itself does not currently support the
concept of a scaled size, which makes it impossible to compare
the sizes of different scalable objects, e.g. <vscale x 32 x i8>
and <vscale x 16 x i8>.

Added new tests here:

  Transforms/LICM/AArch64/sve-load-hoist.ll
  Transforms/LICM/hoisting.ll

Differential Revision: https://reviews.llvm.org/D87227
2020-09-15 08:30:19 +01:00
..
ADCE [ADCE] Fix incorrect reporting of CFG changes 2020-04-14 20:26:13 +07:00
AddDiscriminators
AggressiveInstCombine
AlignmentFromAssumptions Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
ArgumentPromotion [ArgumentPromotion]: Copy function metadata after promoting arguments 2020-09-10 13:08:57 -04:00
AtomicExpand Handle part-word LL/SC in atomic expansion pass 2020-04-28 10:07:39 -05:00
Attributor Revert "[Attributor] Re-enable a run line in noalias.ll" 2020-09-09 13:28:22 -05:00
BDCE [DemandedBits][BDCE] Add support for min/max intrinsics 2020-09-10 22:13:31 +02:00
BlockExtractor
BranchFolding
CallSiteSplitting Re-enable "[InstCombine] Simplify boolean Phis with const inputs using CFG" 2020-07-16 16:09:08 +07:00
CalledValuePropagation
CanonicalizeAliases
CanonicalizeFreezeInLoops [TargetPassConfig] Add CanonicalizeFreezeInLoops before LSR 2020-05-28 05:21:12 +09:00
CodeExtractor [CodeExtractor] Fix extraction of a value used only by intrinsics outside of region 2020-04-25 11:44:47 +03:00
CodeGenPrepare [CodeGenPrepare] Fix zapping dead operands of assume 2020-09-14 11:46:34 +07:00
ConstantHoisting
ConstantMerge
Coroutines [DSE] Adjust coroutines test after e082dee2b5. 2020-09-12 19:23:13 +01:00
CorrelatedValuePropagation [CVP] Regenerate test checks (NFC) 2020-08-30 16:23:59 +02:00
CrossDSOCFI
DCE Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
DeadArgElim IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
DeadStoreElimination [DSE] Only eliminate candidates that always store the same loc. 2020-09-14 12:06:58 +01:00
DivRemPairs [ValueTracking] Let isGuaranteedNotToBeUndefOrPoison use canCreateUndefOrPoison 2020-07-20 09:21:39 +09:00
EarlyCSE [EarlyCSE] Fix and recommit the revised c9826829d7 2020-09-10 23:30:56 -04:00
EliminateAvailableExternally
EntryExitInstrumenter Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
ExpandMemCmp
FixIrreducible [fix-irreducible] Skip unreachable predecessors. 2020-07-11 10:08:44 -04:00
Float2Int
ForcedFunctionAttrs Force Remove Attribute 2020-08-19 17:30:13 -04:00
FunctionAttrs [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
FunctionImport
GCOVProfiling [gcov] Add spanning tree optimization 2020-09-13 00:07:31 -07:00
GVN [GVN] Account for masked loads/stores depending on load/store instructions 2020-09-10 10:57:33 -05:00
GVNHoist [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
GVNSink [NFCI][SimplifyCFG] Guard common code hoisting with a (default-on) flag 2020-07-20 10:29:57 +03:00
GlobalDCE [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
GlobalMerge
GlobalOpt [GlobalOpt] Fix an incorrect Modified status 2020-09-02 15:00:45 +02:00
GlobalSplit
GuardWidening [NewPM][GuardWidening] Fix loop guard widening tests under NPM 2020-08-06 15:32:59 -07:00
HardwareLoops [SCEV] If Start>=RHS, simplify (Start smin RHS) = RHS for trip counts. 2020-08-03 17:22:42 +01:00
HelloNew Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00
HotColdSplit [HotColdSplit] Add options for splitting cold functions in separate section 2020-08-09 08:48:12 -07:00
IRCE [NPM] Bail out when -foo and --passes=foo are both specified 2020-06-22 08:27:13 -07:00
IndVarSimplify [SCEV] Constant expansion cost at minsize 2020-09-10 08:21:11 +01:00
IndirectBrExpand
InferAddressSpaces AMDGPU: Fix wrong type mangling in intrinsic test 2020-08-19 14:33:19 -04:00
InferFunctionAttrs [BuildLibCalls] Add more noundef to library functions 2020-09-09 20:33:35 +09:00
Inline Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
InstCombine [InstCombine] Simplify select operand based on equality condition 2020-09-14 20:07:06 +02:00
InstMerge [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
InstNamer [InstNamer] use 'i' for Instructions, not 'tmp' 2020-06-01 11:11:14 -04:00
InstSimplify [InstSimplify] add folds for fmin/fmax with 'nnan' 2020-09-14 11:46:11 -04:00
InterleavedAccess [Alignment] Fix misaligned interleaved loads 2020-05-27 12:12:22 +00:00
Internalize
JumpThreading [JumpThreading] Fix an incorrect Modified status 2020-09-14 10:36:13 +02:00
LCSSA [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
LICM [SVE] Fix isLoadInvariantInLoop for scalable vectors 2020-09-15 08:30:19 +01:00
LoadStoreVectorizer [AMDGPU] Reorganize GCN subtarget features for unaligned access 2020-08-21 12:26:31 +02:00
LoopDataPrefetch Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
LoopDeletion [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
LoopDistribute [SCEVExpander] Avoid re-using existing casts if it means updating users. 2020-08-09 13:25:17 +01:00
LoopFusion [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
LoopIdiom [SVE] In LoopIdiomRecognize::isLegalStore bail out for scalable vectors 2020-09-14 11:28:31 +01:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Move instructions from preheader to outer loop header. 2020-08-10 12:41:33 +01:00
LoopLoadElim [LoopLoadElim] Filter away candidates that stop being AddRecs after loop versioning. PR47457 2020-09-10 13:30:31 +07:00
LoopPredication [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
LoopReroll [IR] Simplify Use::swap. NFCI. 2020-07-21 12:15:12 +01:00
LoopRotate [NewPM][LoopRotate] Rename rotate -> loop-rotate 2020-08-05 12:25:01 -07:00
LoopSimplify Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
LoopSimplifyCFG For some tests targeting SystemZ, -march=z13 ---> -mcpu=z13 2020-07-29 19:18:01 -07:00
LoopStrengthReduce Mark FMOV constant materialization as being as cheap as a move. 2020-09-10 16:38:59 +00:00
LoopTransformWarning
LoopUnroll [Value][InstCombine] Fix one-use checks in PHI-of-op -> Op-of-PHI[s] transforms to be one-user checks 2020-08-26 20:20:41 +03:00
LoopUnrollAndJam [tbaa] Rename type-based-aa -> tbaa 2020-07-30 19:51:35 -07:00
LoopUnswitch Reland "[LoopUnswitch] Fix incorrect Modified status" 2020-08-20 11:52:09 +02:00
LoopVectorize [ARM] Enable tail predication for reduction tests. NFC 2020-09-14 14:26:10 +01:00
LoopVersioning [NewPM][LoopVersioning] Port LoopVersioning to NPM 2020-08-03 10:32:09 -07:00
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
LowerExpectIntrinsic Add support of __builtin_expect_with_probability 2020-06-22 10:21:28 -07:00
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Use TileInfo to create tiled loop nest for matrix multiply. 2020-07-20 21:11:53 +01:00
LowerSwitch
LowerTypeTests
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Teach promote to register about droppable instructions 2020-07-24 15:15:38 -05:00
MemCpyOpt [DSE] Switch to MemorySSA-backed DSE by default. 2020-09-10 22:24:32 +01:00
MergeFunc Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
MergeICmps
MetaRenamer
NameAnonGlobals
NaryReassociate [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
NewGVN [GVN] add tests for >2 arg commutable intrinsics; NFC 2020-09-03 10:14:52 -04:00
ObjCARC [ObjC][ARC] In HandlePotentialAlterRefCount, check whether an 2020-08-28 17:45:14 -07:00
OpenMP [OpenMPOpt] Assume indirect call always changes ICV 2020-09-04 09:05:32 -07:00
PGOProfile [PGO] Skip if an IndirectBrInst critical edge cannot be split 2020-09-10 11:04:14 -07:00
PartiallyInlineLibCalls
PhaseOrdering [X86] Add test cases for PR11210 2020-09-13 13:38:05 +01:00
PlaceSafepoints
PreISelIntrinsicLowering Remove Passes dependency on CodeGen 2020-06-24 14:52:46 -07:00
PruneEH
Reassociate [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
Reg2Mem
RewriteStatepointsForGC [NPM] Bail out when -foo and --passes=foo are both specified 2020-06-22 08:27:13 -07:00
SCCP [SCCP] Compute ranges for supported intrinsics 2020-09-07 22:16:06 +02:00
SLPVectorizer [SLP] further limit bailout for load combine candidate (PR47450) 2020-09-11 11:56:11 -04:00
SROA [SROA] Improve handleling of assumes bundles by SROA 2020-08-28 21:55:45 +02:00
SafeStack [StackSafety] Ignore allocas with partial lifetime markers 2020-08-27 13:54:41 -07:00
SampleProfile [SampleFDO] Enhance profile remapping support for searching inline instance 2020-08-26 11:07:35 -07:00
ScalarizeMaskedMemIntrin [ScalarizeMaskedMemIntrin][X86] Refresh missed transform test cases from rGc0c3b9a25fee 2020-08-10 11:14:01 +01:00
Scalarizer [Scalarizer] Avoid updating the name of globals 2020-08-24 21:55:03 +02:00
SeparateConstOffsetFromGEP Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
SimpleLoopUnswitch [NFCI][SimpleLoopUnswitch] Adjust CostKind query 2020-08-14 07:54:20 +01:00
SimplifyCFG Reland [SimplifyCFG][LoopRotate] SimplifyCFG: disable common instruction hoisting by default, enable late in pipeline 2020-09-08 00:24:03 +03:00
Sink [Sink][test] Add nounwind test and properly test convergent 2020-08-30 18:26:42 -07:00
SpeculateAroundPHIs [NFC] Update tests 2020-05-05 15:28:40 +01:00
SpeculativeExecution SpeculativeExecution: Fix for logic change introduced in D81730. 2020-07-09 15:45:23 +03:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG [StructurizeCFG] Fix region nodes ordering 2020-06-01 12:50:35 +03:00
SyntheticCountsPropagation
TailCallElim Revert "[TRE] allow TRE for non-capturing calls." 2020-07-13 00:39:48 +03:00
ThinLTOBitcodeWriter
TypePromotion/ARM
UnifyFunctionExitNodes [UnifyFunctionExitNodes] Fix Modified status for unreachable blocks 2020-09-09 13:36:03 +02:00
UnifyLoopExits
UniqueInternalLinkageNames New pass to make internal linkage symbol names unique. 2020-04-20 15:05:22 -07:00
Util [NewPM] Pin -assumption-cache-tracker tests to legacy PM 2020-08-06 10:38:03 -07:00
VectorCombine [VectorCombine][SVE] Do not fold bitcast shuffle for scalable type. 2020-09-02 15:02:16 -07:00
WholeProgramDevirt Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00