llvm-project/llvm/test/Transforms
Sander de Smalen 137459aff6 [AArch64][SME] Disable (SLP|Loop)Vectorizer when function may be executed in streaming mode.
When the SME attributes tell that a function is or may be executed in Streaming
SVE mode, we currently need to be conservative and disable _any_ vectorization
(fixed or scalable) because the code-generator does not yet support generating
streaming-compatible code.

Scalable auto-vec will be gradually enabled in the future when we have
confidence that the loop-vectorizer won't use any SVE or NEON instructions
that are illegal in Streaming SVE mode.

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D135950
2022-10-19 16:42:20 +00:00
..
ADCE [ADCE] Update tests to use opaque pointers (NFC) 2022-06-22 12:26:12 +02:00
AddDiscriminators [AddDiscriminators] Migrate tests to opaque pointers (NFC) 2022-06-22 12:47:12 +02:00
AggressiveInstCombine [AggressiveInstCombine] Load merge the reverse load pattern of consecutive loads. 2022-10-19 11:22:58 +01:00
AlignmentFromAssumptions [AlignmentFromAssumptions] Migrate tests to opaque pointers (NFC) 2022-06-22 13:57:47 +02:00
ArgumentPromotion [ArgPromotion] Transfer metadata nontemporal to promoted loads 2022-07-26 16:30:08 +08:00
AtomicExpand AtomicExpand: Avoid some operations if the atomic is overaligned 2022-10-13 23:31:00 -07:00
Attributor [Attributor] Use ConstantFoldLoadFromConst() 2022-10-10 10:17:37 +02:00
BDCE
BlockExtractor [IR] Enable opaque pointers by default 2022-06-02 09:40:56 +02:00
BranchFolding
CallSiteSplitting [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
CalledValuePropagation
CanonicalizeAliases [LegacyPM] Remove LTO passes from optimization pipeline 2022-07-17 14:24:36 -07:00
CanonicalizeFreezeInLoops
CodeExtractor [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
CodeGenPrepare [SimplifyLibCalls] Retain attributes added by Builder.CreateMem* 2022-10-04 13:11:34 +00:00
ConstantHoisting [test] Update some legacy PM tests 2022-09-30 11:31:02 -07:00
ConstantMerge
ConstraintElimination [ConstraintElim] Use helper to allow overflow for coefficients of GEPs 2022-10-17 20:30:43 +01:00
Coroutines [Coroutines] Don't merge readnone calls in presplit coroutines 2022-10-17 10:22:43 +08:00
CorrelatedValuePropagation [DebugInfo] Missing debug location after replacement in processSRem function 2022-09-01 13:18:17 +01:00
CrossDSOCFI
DCE [DCE] Update tests to use opaque pointers (NFC) 2022-06-10 17:31:35 +02:00
DFAJumpThreading [NFC] Switch a few uses of undef to poison as placeholders for unreachble code 2022-07-03 14:34:03 +01:00
DeadArgElim [Globals] Treat nobuiltin fns as maybe-derefined. 2022-08-23 13:45:10 +01:00
DeadStoreElimination [test][DSE] Use -passes=dse instead of -dse in lit tests. NFC 2022-10-13 10:44:37 +02:00
DivRemPairs [Mips] Implement hasDivRemOp() 2022-05-16 14:45:40 +08:00
EarlyCSE [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp [test][ExpandMemCmp] Convert test cases to opaque pointers. NFC 2022-10-07 15:29:32 +02:00
FixIrreducible [FixIrreducible][opt] Mark -fix-irreducible as a codegen pass 2022-09-30 10:34:04 -07:00
Float2Int [Float2Int] Make sure dependent ranges are calculated first (PR54669) 2022-04-04 10:18:39 +02:00
ForcedFunctionAttrs
FunctionAttrs [BasicAA] Support loop phis in pointsToConstantMemory() 2022-10-17 12:34:55 +02:00
FunctionImport [test] Change -function-import tests to use -passes= 2022-07-17 21:43:00 -07:00
FunctionSpecialization [NFC][FuncSpec] Add a test to show redundant function cloning. 2022-10-13 23:00:23 +01:00
GCOVProfiling [InstrProf] Add the skipprofile attribute 2022-08-04 08:45:27 -07:00
GVN [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
GVNHoist [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
GVNSink Revert "[SimplifyCFG] Thread branches on same condition in more cases (PR54980)" 2022-07-05 16:57:46 +02:00
GlobalDCE
GlobalMerge Fix the eh-filter.ll test. 2022-06-29 16:14:41 -05:00
GlobalOpt [IR] Don't allow DLL storage-class and local linkage 2022-09-30 00:26:01 +01:00
GlobalSplit
GuardWidening [GuardWidening] Add tests showing incorrect behavior of GW. 2022-06-29 13:41:59 +07:00
HardwareLoops
HelloNew
HotColdSplit [IR] Enable opaque pointers by default 2022-06-02 09:40:56 +02:00
IRCE [IRCE] Bail in case of pointer types. PR40539 2022-09-12 16:01:25 +07:00
IROutliner [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
IndVarSimplify [IndVars] Forget SCEV for instruction and users before replacing it. 2022-10-18 17:38:14 +01:00
IndirectBrExpand
InferAddressSpaces [DebugInfo][InferAddressSpaces] Propagate DebugLoc when cloning an instruction in InferAddressSpaces 2022-09-29 08:43:37 +00:00
InferFunctionAttrs [InstCombine] Tighten up known library function signature tests (PR #56463) 2022-08-10 14:15:46 -06:00
Inline [NFC][3/n] Remove enable-new-pm from Inline tests 2022-10-10 13:42:42 -07:00
InstCombine [InstCombine] fmul nnan X, 0.0 --> copysign(0.0, X) 2022-10-18 11:34:02 -04:00
InstMerge [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
InstNamer
InstSimplify [instsimplify] Move (extelt (inselt Vec, Value, Index), Index) -> Value from InstCombine 2022-10-17 15:22:06 -07:00
InterleavedAccess [IR] Move vector.insert/vector.extract out of experimental namespace 2022-06-27 10:48:45 +00:00
Internalize [Internalize] Support glob patterns for API lists 2022-07-22 08:24:32 -04:00
JumpThreading [NFC][2/n] Remove PrunePH pass 2022-09-26 18:38:04 -07:00
LCSSA [LCSSA] Update unreachable uses with poison. 2022-09-04 22:26:18 +01:00
LICM [MustExec][LICM] Handle latch being part of an inner cycle (PR57780) 2022-10-11 09:30:13 +02:00
LoadStoreVectorizer [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopBoundSplit
LoopDataPrefetch [LoopDataPrefetch] Fix crash when TTI doesn't set CacheLineSize 2022-07-26 13:08:42 +08:00
LoopDeletion [Loop] Move block and loop dispo invalidation to makeLoopInvariant. 2022-10-14 21:58:14 +01:00
LoopDistribute [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopFlatten [Test] Regenerate tests using update_tests.py 2022-08-19 14:51:19 +07:00
LoopFusion [LoopFuse] Drop loop dispositions before reassigning blocks to other loop 2022-09-19 17:43:06 +07:00
LoopIdiom [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopInstSimplify [LoopInstSimplify] Ignore users in unreachable blocks. PR55072 2022-04-25 17:35:28 +07:00
LoopInterchange [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopLoadElim [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopPredication [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopReroll
LoopRotate [LoopRotate] Drop loop dispositions when rotating loops. PR56260 2022-09-19 18:01:02 +07:00
LoopSimplify [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopSimplifyCFG [LoopSimplifyCFG] Clear SCEV dispositions when removing dead blocks. 2022-10-10 18:08:35 +01:00
LoopStrengthReduce [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopTransformWarning
LoopUnroll [LoopUnroll] Forget exit values when making changes. 2022-10-18 15:12:24 +01:00
LoopUnrollAndJam [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopVectorize [AArch64][SME] Disable (SLP|Loop)Vectorizer when function may be executed in streaming mode. 2022-10-19 16:42:20 +00:00
LoopVersioning [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
LoopVersioningLICM [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
LowerAtomic [NFC] Switch a few uses of undef to poison as placeholders for unreachable code 2022-07-23 21:50:11 +01:00
LowerConstantIntrinsics tests: add attributes that would normally come from inferattrs 2022-07-25 17:29:00 -04:00
LowerExpectIntrinsic
LowerGlobalDestructors Reland "Lower `@llvm.global_dtors` using `__cxa_atexit` on MachO" 2022-03-23 18:36:55 -07:00
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
LowerSwitch LowerSwitch: Avoid inserting NewDefault block 2022-04-14 13:30:56 +08:00
LowerTypeTests [test] Change -lowertypetests tests to -passes= 2022-07-17 15:03:46 -07:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Consistently preserve nonnull assume for uninit load 2022-07-12 12:53:08 +02:00
MemCpyOpt [MemCpyOpt] Add additional tests with lifetime intrinsics (NFC) 2022-10-13 17:29:59 +02:00
MergeFunc [llvm] Handle dso_local_equivalent in FunctionComparator 2022-09-22 18:42:31 +00:00
MergeICmps Reapply [MergeICmps] Don't require GEP 2022-03-04 11:39:11 +01:00
MetaRenamer [TLI] Check that malloc argument has type size_t 2022-03-14 17:22:24 +01:00
NameAnonGlobals [LegacyPM] Remove LTO passes from optimization pipeline 2022-07-17 14:24:36 -07:00
NaryReassociate
NewGVN [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
ObjCARC [ObjCARC][test] Use `opt -passes=` syntax 2022-10-18 09:54:05 -07:00
OpenMP [test] Update some legacy PM tests 2022-09-30 11:31:02 -07:00
PGOProfile Revert "[PGO] Make emitted symbols hidden" 2022-10-14 15:23:26 -07:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Don't partially inline a musttail libcall. 2022-04-05 22:30:50 +03:00
PhaseOrdering [AggressiveInstCombine] Load merge the reverse load pattern of consecutive loads. 2022-10-19 11:22:58 +01:00
PlaceSafepoints Revert "Remove PlaceSafepoints pass" 2022-10-13 07:17:25 -07:00
PreISelIntrinsicLowering
Reassociate [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
Reg2Mem
RelLookupTableConverter/X86 [RelLookupTableConverter] Bail on invalid pointer size (x32) 2022-08-09 09:36:39 +02:00
RewriteStatepointsForGC [RS4GC] Handle vectors of pointers in non-live clobbering 2022-08-16 17:47:30 +03:00
SCCP [SCCP] regenerate test checks; NFC 2022-09-30 10:26:01 -04:00
SLPVectorizer [SLP][NFC]Add a test for possible reordering gap in SLP, NFC. 2022-10-19 08:22:07 -07:00
SROA [SROA] Don't speculate phis with different load user types 2022-10-18 08:44:13 -07:00
SafeStack [safestack] Support safestack in stack size diagnostics 2022-04-20 18:29:40 +00:00
SampleProfile [opt] Remove temporary legacy pass name translations 2022-10-07 11:09:46 -07:00
ScalarizeMaskedMemIntrin
Scalarizer [test][Scalarizer] Convert test cases to opaque pointers. NFC 2022-10-03 22:37:58 +02:00
SeparateConstOffsetFromGEP [AArch64] Move SeparateConstOffsetFromGEPPass before LSR and enable EnableGEPOpt by default. 2022-07-22 15:20:53 +01:00
SimpleLoopUnswitch [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
SimplifyCFG [SimplifyCFG] Add tests for simpilfycfg, switch to lookup table with i2 types; NFC 2022-10-15 02:25:27 +08:00
Sink [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
SpeculativeExecution
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols [StripDeadDebugInfo] Drop dead CUs 2022-09-11 01:31:03 -07:00
StructurizeCFG [StructurizeCFG][opt] Mark -structurizecfg as a codegen pass 2022-09-30 10:27:09 -07:00
SyntheticCountsPropagation
TailCallElim KCFI sanitizer 2022-08-24 22:41:38 +00:00
ThinLTOBitcodeWriter
TypePromotion [NFC][TypePromotion] Add test 2022-09-05 09:01:23 +01:00
UnifyFunctionExitNodes [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
UnifyLoopExits [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
Util [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
VectorCombine [VectorCombine] fix crashing on match of non-canonical fneg 2022-10-17 10:47:48 -04:00
WholeProgramDevirt [llvm] Update WPD tests to use opaque pointers 2022-10-11 22:30:24 +00:00