mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-26 07:56:43 +00:00
Add loop pass insertion point EP_LateLoopOptimizations
Differential Revision: https://reviews.llvm.org/D28694 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293067 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1dd101bfef
commit
396de7fcfb
@ -101,6 +101,14 @@ public:
|
||||
/// will be inserted after each instance of the instruction combiner pass.
|
||||
EP_Peephole,
|
||||
|
||||
/// EP_LateLoopOptimizations - This extension point allows adding late loop
|
||||
/// canonicalization and simplification passes. This is the last point in
|
||||
/// the loop optimization pipeline before loop deletion. Each pass added
|
||||
/// here must be an instance of LoopPass.
|
||||
/// This is the place to add passes that can remove loops, such as target-
|
||||
/// specific loop idiom recognition.
|
||||
EP_LateLoopOptimizations,
|
||||
|
||||
/// EP_CGSCCOptimizerLate - This extension point allows adding CallGraphSCC
|
||||
/// passes at the end of the main CallGraphSCC passes and before any
|
||||
/// function simplification passes run by CGPassManager.
|
||||
|
@ -316,7 +316,9 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
|
||||
addInstructionCombiningPass(MPM);
|
||||
MPM.add(createIndVarSimplifyPass()); // Canonicalize indvars
|
||||
MPM.add(createLoopIdiomPass()); // Recognize idioms like memset.
|
||||
addExtensionsToPM(EP_LateLoopOptimizations, MPM);
|
||||
MPM.add(createLoopDeletionPass()); // Delete dead loops
|
||||
|
||||
if (EnableLoopInterchange) {
|
||||
MPM.add(createLoopInterchangePass()); // Interchange loops
|
||||
MPM.add(createCFGSimplificationPass());
|
||||
|
Loading…
x
Reference in New Issue
Block a user