llvm-project/llvm/lib/Transforms/Scalar
Elena Demikhovsky 376a18bd92 [Loop Vectorizer] Handling loops FP induction variables.
Allowed loop vectorization with secondary FP IVs. Like this:
float *A;
float x = init;
for (int i=0; i < N; ++i) {
  A[i] = x;
  x -= fp_inc;
}

The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute.

Differential Revision: https://reviews.llvm.org/D21330

llvm-svn: 276554
2016-07-24 07:24:54 +00:00
..
ADCE.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
AlignmentFromAssumptions.cpp [PM] Port AlignmentFromAssumptions to the new PM. 2016-06-15 06:18:01 +00:00
BDCE.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
CMakeLists.txt code hoisting pass based on GVN 2016-07-15 13:45:20 +00:00
ConstantHoisting.cpp This implements a more optimal algorithm for selecting a base constant in 2016-07-14 07:44:20 +00:00
ConstantProp.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
CorrelatedValuePropagation.cpp This converts a signed remainder instruction to unsigned remainder, which 2016-07-14 12:23:48 +00:00
DCE.cpp Move helper classes into anonymous namespaces. NFC. 2016-05-15 15:18:11 +00:00
DeadStoreElimination.cpp Recommit - [DSE]Enhance shorthening MemIntrinsic based on OverlapIntervals 2016-07-22 18:27:24 +00:00
EarlyCSE.cpp Reinstate r273711 2016-06-25 00:04:10 +00:00
FlattenCFGPass.cpp
Float2Int.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
GVN.cpp [GVN] Fold constant expression in GVN. 2016-07-14 22:02:25 +00:00
GVNHoist.cpp GVN-hoist: move check before mutating the IR 2016-07-22 00:07:01 +00:00
GuardWidening.cpp fix formatting, typo; NFC 2016-06-19 17:20:27 +00:00
IndVarSimplify.cpp [IndVars] Reflow oddly formatted condition; NFC 2016-07-21 18:58:01 +00:00
InductiveRangeCheckElimination.cpp [IRCE] Add an option to skip profitability checks 2016-07-22 00:40:56 +00:00
JumpThreading.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
LICM.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
LLVMBuild.txt
LoadCombine.cpp Address Eli's post-commit comments 2016-06-19 21:36:35 +00:00
LoopDataPrefetch.cpp [LoopDataPrefetch] Fix unused variable in release build 2016-07-22 23:08:10 +00:00
LoopDeletion.cpp [PM] Port Dead Loop Deletion Pass to the new PM 2016-07-14 18:28:29 +00:00
LoopDistribute.cpp [OptDiag,LDist] Convert remaining opt remarks to use the new API 2016-07-21 21:21:34 +00:00
LoopIdiomRecognize.cpp [PM] Port LoopIdiomRecognize Pass to new PM 2016-07-12 18:45:51 +00:00
LoopInstSimplify.cpp [PM] Convert LoopInstSimplify Pass to new PM 2016-07-15 16:42:11 +00:00
LoopInterchange.cpp [Loop Vectorizer] Handling loops FP induction variables. 2016-07-24 07:24:54 +00:00
LoopLoadElimination.cpp Rename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC 2016-07-08 20:55:26 +00:00
LoopRerollPass.cpp [LoopReroll] Reroll loops with unordered atomic memory accesses 2016-07-19 00:23:54 +00:00
LoopRotation.cpp Give helper classes/functions internal linkage. NFC. 2016-07-10 11:28:51 +00:00
LoopSimplifyCFG.cpp LoopSimplifyCFG: Prefer `const auto &` to `auto &`, for clarity. NFC 2016-06-17 17:59:48 +00:00
LoopStrengthReduce.cpp [PM] Convert Loop Strength Reduce pass to new PM 2016-07-18 21:41:50 +00:00
LoopUnrollPass.cpp [PM] Port LoopUnroll. 2016-07-19 23:54:23 +00:00
LoopUnswitch.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
LoopVersioningLICM.cpp Rename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC 2016-07-08 20:55:26 +00:00
LowerAtomic.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
LowerExpectIntrinsic.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
LowerGuardIntrinsic.cpp [LowerGuards] Rename variable; NFC 2016-05-18 23:16:27 +00:00
MemCpyOptimizer.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
MergedLoadStoreMotion.cpp [MergedLoadStoreMotion] Remove out of date comment 2016-07-21 05:59:51 +00:00
NaryReassociate.cpp [PM] Port NaryReassociate to the new PM 2016-07-21 22:28:52 +00:00
PartiallyInlineLibCalls.cpp [PM] Port PartiallyInlineLibCalls to the new pass manager. 2016-05-25 23:38:53 +00:00
PlaceSafepoints.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Reassociate.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
Reg2Mem.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
RewriteStatepointsForGC.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
SCCP.cpp [SCCP] Zap multiple return values. 2016-07-20 20:17:13 +00:00
SROA.cpp Fix formatting of r273144. NFC. 2016-06-20 11:19:58 +00:00
Scalar.cpp [PM] Port NaryReassociate to the new PM 2016-07-21 22:28:52 +00:00
Scalarizer.cpp [Scalarizer] PR28108: Skip over nullptr rather than crashing on it. 2016-07-14 01:31:25 +00:00
SeparateConstOffsetFromGEP.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
SimplifyCFGPass.cpp Move instances of std::function. 2016-06-12 16:13:55 +00:00
Sink.cpp [Sink] Don't move calls to readonly functions across stores 2016-07-11 14:11:51 +00:00
SpeculativeExecution.cpp
StraightLineStrengthReduce.cpp [SLSR] Call getPointerSizeInBits with the correct address space. 2016-07-11 18:13:28 +00:00
StructurizeCFG.cpp StructurizeCFG: Fix inverting constantexpr conditions 2016-07-15 22:13:16 +00:00
TailRecursionElimination.cpp [PM] Port TailCallElim 2016-07-06 23:48:41 +00:00