1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 05:52:53 +02:00
llvm-mirror/lib/Transforms/Scalar
Sanjoy Das 343d0f7307 [IRCE] Don't iterate on loops that were cloned out
IRCE has the ability to further version pre-loops and post-loops that it
created, but this isn't useful at all.  This change teaches IRCE to
leave behind some metadata in the loops it creates (by cloning the main
loop) so that these new loops are not re-processed by IRCE.

Today this bug is hidden by another bug -- IRCE does not update LoopInfo
properly so the loop pass manager does not re-invoke IRCE on the loops
it split out.  However, once the latter is fixed the bug addressed in
this change causes IRCE to infinite-loop in some cases (e.g. it splits
out a pre-loop, a pre-pre-loop from that, a pre-pre-pre-loop from that
and so on).

llvm-svn: 278617
2016-08-14 01:04:36 +00:00
..
ADCE.cpp [ADCE] Refactoring for new functionality (NFC) 2016-08-05 19:38:11 +00:00
AlignmentFromAssumptions.cpp Add some comments linking back to PR28400. 2016-08-08 07:03:49 +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 Teach CorrelatedValuePropagation to mark adds as no wrap 2016-08-10 13:08:34 +00:00
DCE.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
DeadStoreElimination.cpp [DSE] Don't remove stores made live by a call which unwinds. 2016-08-12 01:09:53 +00:00
EarlyCSE.cpp [EarlyCSE] Teach about CSE'ing over invariant.start intrinsics 2016-08-09 20:00:47 +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
GuardWidening.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
GVN.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
GVNHoist.cpp Test commit 2016-08-13 11:56:50 +00:00
InductiveRangeCheckElimination.cpp [IRCE] Don't iterate on loops that were cloned out 2016-08-14 01:04:36 +00:00
IndVarSimplify.cpp [IndVars] Ignore (s|z)exts that don't extend the induction variable 2016-08-13 00:58:31 +00:00
JumpThreading.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
LICM.cpp Fix typos /NFC 2016-08-11 22:34:00 +00:00
LLVMBuild.txt
LoadCombine.cpp [LoadCombine] Simplify code with a brace init. NFC. 2016-08-06 12:11:11 +00:00
LoopDataPrefetch.cpp [PM] Port LoopDataPrefetch to new pass manager 2016-08-13 04:11:27 +00:00
LoopDeletion.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +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 Target independent codesize heuristics for Loop Idiom Recognition 2016-08-11 18:28:33 +00:00
LoopInstSimplify.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +00:00
LoopInterchange.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
LoopLoadElimination.cpp Use the range variant of transform instead of unpacking begin/end 2016-08-12 04:32:42 +00:00
LoopRerollPass.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
LoopRotation.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +00:00
LoopSimplifyCFG.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +00:00
LoopStrengthReduce.cpp Use the range variant of find/find_if instead of unpacking begin/end 2016-08-12 03:55:06 +00:00
LoopUnrollPass.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +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 [PM] Port LowerGuardIntrinsic to the new PM. 2016-07-28 22:08:41 +00:00
MemCpyOptimizer.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
MergedLoadStoreMotion.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
NaryReassociate.cpp Add some comments linking back to PR28400. 2016-08-08 07:03:49 +00:00
PartiallyInlineLibCalls.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +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 Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
Scalar.cpp [PM] Port LoopDataPrefetch to new pass manager 2016-08-13 04:11:27 +00:00
Scalarizer.cpp Scalarizer: Support scalarizing intrinsics 2016-07-25 20:02:54 +00:00
SCCP.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +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 Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
Sink.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
SpeculativeExecution.cpp [PM] Port SpeculativeExecution to the new PM 2016-08-01 21:48:33 +00:00
SROA.cpp Use the range variant of remove_if instead of unpacking begin/end 2016-08-12 04:32:37 +00:00
StraightLineStrengthReduce.cpp [SLSR] Call getPointerSizeInBits with the correct address space. 2016-07-11 18:13:28 +00:00
StructurizeCFG.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
TailRecursionElimination.cpp Use the range variant of find/find_if instead of unpacking begin/end 2016-08-12 03:55:06 +00:00