Similar to c515b2f39e, If there are no loops in the function as seen
through LI, we should avoid computing the remaining expensive analyses
(such as SCEV, BPI). Reordered the analyses requests and early return
if there are no loops.
The logic of avoiding expensive analyses is applied to LoopVectorizer,
LoopLoadElimination and LoopUnrollPass, i.e. all function passes which operate
on loops.
This is an NFC with compile time improvement.
Differential Revision: https://reviews.llvm.org/D124529
22 lines
800 B
LLVM
22 lines
800 B
LLVM
; RUN: opt < %s -debug-pass-manager -passes='loop-vectorize,sccp,loop-vectorize' 2>&1 -S | FileCheck --check-prefix=NEW-PM %s
|
|
|
|
; Check CFG-only analysis are preserved by SCCP by running it between 2
|
|
; loop-vectorize runs.
|
|
|
|
; NEW-PM-DAG: Running analysis: LoopAnalysis on test
|
|
; NEW-PM-DAG: Running analysis: DominatorTreeAnalysis on test
|
|
; NEW-PM: Running pass: SCCPPass on test
|
|
; NEW-PM: Running analysis: TargetLibraryAnalysis on test
|
|
; NEW-PM-NOT: Running analysis: LoopAnalysis on test
|
|
; NEW-PM-NOT: Running analysis: DominatorTreeAnalysis on test
|
|
; NEW-PM-NOT: Running analysis: AssumptionAnalysis on test
|
|
; NEW-PM-NOT: Running analysis: TargetLibraryAnalysis on test
|
|
; NEW-PM-NOT: Running analysis: TargetIRAnalysis on test
|
|
|
|
|
|
define i32 @test() {
|
|
entry:
|
|
%res = add i32 1, 10
|
|
ret i32 %res
|
|
}
|