forked from OSchip/llvm-project
Add loop distribution to the LTO pipeline
The LoopDistribute pass is missing from the LTO pipeline, so -enable-loop-distribute has no effect during post-link. The pre-link loop distribution doesn't seem to survive the LTO pipeline either. With this patch (and -flto -mllvm -enable-loop-distribute) we see a 43% uplift on SPEC 2006 hmmer for AArch64. The rest of SPECINT 2006 is unaffected. Differential Revision: https://reviews.llvm.org/D89896
This commit is contained in:
parent
bd01a66675
commit
dd03881bd5
|
@ -1055,6 +1055,7 @@ void PassManagerBuilder::addLTOOptimizationPasses(legacy::PassManagerBase &PM) {
|
|||
// Unroll small loops
|
||||
PM.add(createSimpleLoopUnrollPass(OptLevel, DisableUnrollLoops,
|
||||
ForgetAllSCEVInLoopUnroll));
|
||||
PM.add(createLoopDistributePass());
|
||||
PM.add(createLoopVectorizePass(true, !LoopVectorize));
|
||||
// The vectorizer may have significantly shortened a loop body; unroll again.
|
||||
PM.add(createLoopUnrollPass(OptLevel, DisableUnrollLoops,
|
||||
|
|
|
@ -128,9 +128,17 @@
|
|||
; CHECK-NEXT: Induction Variable Simplification
|
||||
; CHECK-NEXT: Delete dead loops
|
||||
; CHECK-NEXT: Unroll loops
|
||||
; CHECK-NEXT: Loop Access Analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
; CHECK-NEXT: Lazy Block Frequency Analysis
|
||||
; CHECK-NEXT: Optimization Remark Emitter
|
||||
; CHECK-NEXT: Loop Distribution
|
||||
; CHECK-NEXT: Post-Dominator Tree Construction
|
||||
; CHECK-NEXT: Branch Probability Analysis
|
||||
; CHECK-NEXT: Block Frequency Analysis
|
||||
; CHECK-NEXT: Scalar Evolution Analysis
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Loop Access Analysis
|
||||
; CHECK-NEXT: Demanded bits analysis
|
||||
; CHECK-NEXT: Lazy Branch Probability Analysis
|
||||
|
|
Loading…
Reference in New Issue