1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/Transforms/Utils
David Sherwood 6d7c7dcc2b [SVE] Add support for scalable vectors with vectorize.scalable.enable loop attribute
In this patch I have added support for a new loop hint called
vectorize.scalable.enable that says whether we should enable scalable
vectorization or not. If a user wants to instruct the compiler to
vectorize a loop with scalable vectors they can now do this as
follows:

  br i1 %exitcond, label %for.end, label %for.body, !llvm.loop !2
  ...
  !2 = !{!2, !3, !4}
  !3 = !{!"llvm.loop.vectorize.width", i32 8}
  !4 = !{!"llvm.loop.vectorize.scalable.enable", i1 true}

Setting the hint to false simply reverts the behaviour back to the
default, using fixed width vectors.

Differential Revision: https://reviews.llvm.org/D88962
2020-12-02 13:23:43 +00:00
..
AddDiscriminators.cpp
AMDGPUEmitPrintf.cpp
ASanStackFrameLayout.cpp
AssumeBundleBuilder.cpp [ValueTracking] Use assume's noundef operand bundle 2020-10-14 20:16:33 +09:00
BasicBlockUtils.cpp [Transforms] Use llvm::is_contained (NFC) 2020-11-18 20:42:22 -08:00
BreakCriticalEdges.cpp [Transforms] Use llvm::is_contained (NFC) 2020-11-18 20:42:22 -08:00
BuildLibCalls.cpp Make inferLibFuncAttributes() add SExt attribute on second arg to ldexp. 2020-11-10 18:32:15 +01:00
BypassSlowDivision.cpp
CallGraphUpdater.cpp [NewPM][CGSCC] Handle newly added functions in updateCGAndAnalysisManagerForPass 2020-09-23 15:22:18 -07:00
CallPromotionUtils.cpp [Utils] isLegalToPromote - Fix missing null check before writing to FailureReason. 2020-09-15 14:49:04 +01:00
CanonicalizeAliases.cpp
CanonicalizeFreezeInLoops.cpp [ValueTracking] Use assume's noundef operand bundle 2020-10-14 20:16:33 +09:00
CloneFunction.cpp [Transforms] Use pred_empty (NFC) 2020-11-16 22:09:14 -08:00
CloneModule.cpp
CMakeLists.txt Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
CodeExtractor.cpp Revert "[IR] add fn attr for no_stack_protector; prevent inlining on mismatch" 2020-11-17 17:27:14 -08:00
CodeMoverUtils.cpp
CtorUtils.cpp
Debugify.cpp [Debugify] Skip debugifying on special/immutable passes 2020-11-16 20:39:46 -08:00
DemoteRegToStack.cpp
EntryExitInstrumenter.cpp [musttail] Unify musttail call preceding return checking 2020-11-03 11:39:27 -08:00
EscapeEnumerator.cpp [musttail] Unify musttail call preceding return checking 2020-11-03 11:39:27 -08:00
Evaluator.cpp [CSSPGO] IR intrinsic for pseudo-probe block instrumentation 2020-11-20 10:39:24 -08:00
FixIrreducible.cpp [FixIrreducible][NewPM] Port -fix-irreducible to NPM 2020-10-09 09:22:09 -07:00
FlattenCFG.cpp
FunctionComparator.cpp Fix use-of-uninitialized-value in rG75f50e15bf8f 2020-11-26 01:39:22 -07:00
FunctionImportUtils.cpp
GlobalStatus.cpp [globalopt] Teach to look through addrspacecast. 2020-10-16 08:43:09 -04:00
GuardUtils.cpp
ImportedFunctionsInliningStatistics.cpp
InjectTLIMappings.cpp
InlineFunction.cpp [Inline] Fix incorrectly dropped noalias metadata 2020-11-18 21:22:50 +01:00
InstructionNamer.cpp Port -instnamer to NPM 2020-10-22 12:08:36 -07:00
IntegerDivision.cpp
LCSSA.cpp [LCSSA] Doc for special treatment of PHIs 2020-10-29 22:50:07 +02:00
LibCallsShrinkWrap.cpp
Local.cpp [Transforms] Use llvm::is_contained (NFC) 2020-11-18 20:42:22 -08:00
LoopPeel.cpp [NFC][SCEV] Refactor monotonic predicate checks to return enums instead of bools 2020-10-29 16:01:25 +07:00
LoopRotationUtils.cpp [Utils] Skip RemoveRedundantDbgInstrs in MergeBlockIntoPredecessor (PR47746) 2020-10-27 10:12:59 -07:00
LoopSimplify.cpp [Transforms] Use pred_empty (NFC) 2020-11-16 22:09:14 -08:00
LoopUnroll.cpp
LoopUnrollAndJam.cpp
LoopUnrollRuntime.cpp
LoopUtils.cpp [SVE] Add support for scalable vectors with vectorize.scalable.enable loop attribute 2020-12-02 13:23:43 +00:00
LoopVersioning.cpp [LoopVersioning] Form dedicated exits for versioned loop to preserve simplify form 2020-10-24 21:40:46 +08:00
LowerInvoke.cpp
LowerMemIntrinsics.cpp
LowerSwitch.cpp [Transforms] Use pred_empty (NFC) 2020-11-16 22:09:14 -08:00
MatrixUtils.cpp
Mem2Reg.cpp
MetaRenamer.cpp [MetaRenamer][NewPM] Port metarenamer to NPM 2020-10-02 15:42:25 -07:00
ModuleUtils.cpp
NameAnonGlobals.cpp
PredicateInfo.cpp
PromoteMemoryToRegister.cpp [Mem2Reg] Use llvm::count instead of std::count (NFC) 2020-11-07 20:18:47 -08:00
SanitizerStats.cpp
ScalarEvolutionExpander.cpp [SCEV] Use isa<> pattern for testing for CouldNotCompute [NFC] 2020-11-24 18:47:49 -08:00
SimplifyCFG.cpp [SimplifyCFG] FoldBranchToCommonDest: don't require that cmp of br is last instruction 2020-12-01 15:13:06 +03:00
SimplifyIndVar.cpp [IndVars] ICmpInst should not prevent IV widening 2020-11-30 10:51:31 +07:00
SimplifyLibCalls.cpp [SimplifyLibCalls] Optimize mempcpy_chk to mempcpy 2020-10-06 17:08:46 +02:00
SizeOpts.cpp
SplitModule.cpp
SSAUpdater.cpp
SSAUpdaterBulk.cpp
StripGCRelocates.cpp Port StripGCRelocates pass to NPM 2020-10-07 14:41:29 -07:00
StripNonLineTableDebugInfo.cpp [NPM] Port strip nonlinetable debuginfo pass to the new pass manager 2020-10-07 14:35:36 -07:00
SymbolRewriter.cpp
UnifyFunctionExitNodes.cpp [NPM] Port -mergereturn to NPM 2020-10-20 10:33:58 -07:00
UnifyLoopExits.cpp Remove unnecessary header include which violates layering 2020-10-20 20:14:03 -07:00
UniqueInternalLinkageNames.cpp Prepend "__uniq" to symbol names hash with -funique-internal-linkage-names. 2020-10-26 14:24:28 -07:00
Utils.cpp [NPM] port -unify-loop-exits to NPM 2020-10-20 10:46:57 -07:00
ValueMapper.cpp [ValueMapper] Remove unused declaration remapFunction (NFC) 2020-11-22 21:52:03 -08:00
VNCoercion.cpp [GVN] small improvements to comments 2020-11-03 13:21:48 -05:00