llvm-project/llvm/lib/Transforms/Scalar
James Molloy 64419d414b [LoopReroll] Alter the data structures used during reroll validation.
The validation algorithm used an incremental approach, building each
iteration's data structures temporarily, validating them, then
adding them to a global set.

This does not scale well to having multiple sets of Root nodes, as the
set of instructions used in each iteration is the union over all
the root nodes. Therefore, refactor the logic to create a single, simple
container to which later logic then refers. This makes it simpler
control-flow wise to make the creation of the container more complex with
the addition of multiple root sets.

llvm-svn: 227499
2015-01-29 21:52:03 +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 [PM] Move the LowerExpectIntrinsic pass to the Scalar library. 2015-01-24 10:18:47 +00:00
ConstantHoisting.cpp Remove unnecessary copying or replace it with moves in a bunch of places. 2014-10-04 16:55:56 +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 [PM] Refactor the core logic to run EarlyCSE over a function into an 2015-01-27 01:34:14 +00:00
FlattenCFGPass.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
GVN.cpp [GVN] don't propagate equality comparisons of FP zero (PR22376) 2015-01-29 20:51:49 +00:00
IndVarSimplify.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
InductiveRangeCheckElimination.cpp Teach IRCE to look at branch weights when recognizing range checks 2015-01-27 21:38:12 +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 [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +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] Alter the data structures used during reroll validation. 2015-01-29 21:52:03 +00:00
LoopRotation.cpp LoopRotate: Don't walk the uses of a Constant 2015-01-27 06:21:43 +00:00
LoopStrengthReduce.cpp [PM] Remove the Pass argument from all of the critical edge splitting 2015-01-19 12:09:11 +00:00
LoopUnrollPass.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LoopUnswitch.cpp Teach SplitBlockPredecessors how to handle landingpad blocks. 2015-01-28 23:06:47 +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 [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
MergedLoadStoreMotion.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
PartiallyInlineLibCalls.cpp [PM] Sink the specific analyses preserved by SplitBlock into its 2015-01-18 02:39:37 +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
SCCP.cpp [PM] Separate the TargetLibraryInfo object from the immutable pass. 2015-01-15 10:41:28 +00:00
SROA.cpp Reapply: Teach SROA how to update debug info for fragmented variables. 2015-01-20 19:42:22 +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 [PM] Refactor the core logic to run EarlyCSE over a function into an 2015-01-27 01:34:14 +00:00
ScalarReplAggregates.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
Scalarizer.cpp Revert "IR: MDNode => Value" 2014-11-11 21:30:22 +00:00
SeparateConstOffsetFromGEP.cpp Migrate SeparateConstOffsetFromGEP to use a Function with 2015-01-27 07:16:37 +00:00
SimplifyCFGPass.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
Sink.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
StructurizeCFG.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
TailRecursionElimination.cpp Fix tail recursion elimination 2014-11-19 13:32:51 +00:00