llvm-6502/lib/Transforms/Scalar
James Molloy caba7561ae [LoopReroll] Introduce the concept of DAGRootSets.
A DAGRootSet models an induction variable being used in a rerollable
loop. For example:

   x[i*3+0] = y1
   x[i*3+1] = y2
   x[i*3+2] = y3

   Base instruction -> i*3
                    +---+----+
                   /    |     \
               ST[y1]  +1     +2  <-- Roots
                        |      |
                      ST[y2] ST[y3]

There may be multiple DAGRootSets, for example:

   x[i*2+0] = ...   (1)
   x[i*2+1] = ...   (1)
   x[i*2+4] = ...   (2)
   x[i*2+5] = ...   (2)
   x[(i+1234)*2+5678] = ... (3)
   x[(i+1234)*2+5679] = ... (3)

This concept is similar to the "Scale" member used previously, but allows
multiple independent sets of roots based off the same induction variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228821 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-11 09:19:47 +00:00
..
ADCE.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
AlignmentFromAssumptions.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
ConstantHoisting.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
ConstantProp.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
CorrelatedValuePropagation.cpp Make use of @llvm.assume from LazyValueInfo 2014-09-07 20:29:59 +00:00
DCE.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
DeadStoreElimination.cpp [PM] Move TargetLibraryInfo into the Analysis library. 2015-01-15 02:16:27 +00:00
EarlyCSE.cpp EarlyCSE: It isn't safe to CSE across synchronization boundaries 2015-02-10 23:09:43 +00:00
FlattenCFGPass.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
GVN.cpp Allow PRE to insert no-cost phi nodes 2015-02-03 20:37:08 +00:00
InductiveRangeCheckElimination.cpp Make helper functions/classes/globals static. NFC. 2015-02-06 17:51:54 +00:00
IndVarSimplify.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
JumpThreading.cpp [PM] Replace the Pass argument to SplitEdge with specific analyses used 2015-01-19 12:36:53 +00:00
LICM.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
LoadCombine.cpp Use AA in LoadCombine 2014-11-03 23:19:16 +00:00
LoopDeletion.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LoopIdiomRecognize.cpp LoopIdiom: Use utility functions. 2015-02-07 21:37:08 +00:00
LoopInstSimplify.cpp [LPM] Stop using the string based preservation API. It is an 2015-01-28 04:57:56 +00:00
LoopRerollPass.cpp [LoopReroll] Introduce the concept of DAGRootSets. 2015-02-11 09:19:47 +00:00
LoopRotation.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
LoopStrengthReduce.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
LoopUnrollPass.cpp Use estimated number of optimized insns in unroll-threshold computation. 2015-02-06 20:20:40 +00:00
LoopUnswitch.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
LowerAtomic.cpp IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
LowerExpectIntrinsic.cpp [PM] Port LowerExpectIntrinsic to the new pass manager. 2015-01-24 11:13:02 +00:00
Makefile
MemCpyOptimizer.cpp Properly update AA metadata when performing call slot optimization 2015-02-07 17:54:36 +00:00
MergedLoadStoreMotion.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
PartiallyInlineLibCalls.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
PlaceSafepoints.cpp Adjust how we avoid poll insertion inside the poll function (NFC) 2015-02-10 00:04:53 +00:00
Reassociate.cpp Fix Reassociate handling of constant in presence of undef float 2015-01-16 03:00:58 +00:00
Reg2Mem.cpp Standardize {pred,succ,use,user}_empty() 2015-01-13 03:46:47 +00:00
SampleProfile.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
Scalar.cpp Add a pass for inserting safepoints into (nearly) arbitrary IR 2015-02-04 00:37:33 +00:00
Scalarizer.cpp Revert "IR: MDNode => Value" 2014-11-11 21:30:22 +00:00
ScalarReplAggregates.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
SCCP.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
SeparateConstOffsetFromGEP.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
SimplifyCFGPass.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00
Sink.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
SROA.cpp Debug info: When updating debug info during SROA, do not emit debug info 2015-02-09 23:57:22 +00:00
StraightLineStrengthReduce.cpp Fixing a -Wsign-compare warning; NFC 2015-02-04 14:01:08 +00:00
StructurizeCFG.cpp StructurizeCFG: Remove obsolete fix for loop backedge detection 2015-02-04 20:49:47 +00:00
TailRecursionElimination.cpp [multiversion] Thread a function argument through all the callers of the 2015-02-01 12:01:35 +00:00