mirror of
https://github.com/intel/llvm.git
synced 2026-01-31 16:29:50 +08:00
SpeculativeExecution Pass: Set PreserveCFG to avoid unnecessary analyses invalidation.
The pass doesn't touch CFG in any way, only moves instructions between blocks. llvm-svn: 334150
This commit is contained in:
@@ -137,6 +137,7 @@ INITIALIZE_PASS_END(SpeculativeExecutionLegacyPass, "speculative-execution",
|
||||
void SpeculativeExecutionLegacyPass::getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
AU.addRequired<TargetTransformInfoWrapperPass>();
|
||||
AU.addPreserved<GlobalsAAWrapperPass>();
|
||||
AU.setPreservesCFG();
|
||||
}
|
||||
|
||||
bool SpeculativeExecutionLegacyPass::runOnFunction(Function &F) {
|
||||
@@ -314,6 +315,7 @@ PreservedAnalyses SpeculativeExecutionPass::run(Function &F,
|
||||
return PreservedAnalyses::all();
|
||||
PreservedAnalyses PA;
|
||||
PA.preserve<GlobalsAA>();
|
||||
PA.preserveSet<CFGAnalyses>();
|
||||
return PA;
|
||||
}
|
||||
} // namespace llvm
|
||||
|
||||
@@ -59,8 +59,6 @@
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Early CSE w/ MemorySSA
|
||||
; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Value Information Analysis
|
||||
; CHECK-NEXT: Jump Threading
|
||||
|
||||
@@ -62,8 +62,6 @@
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Early CSE w/ MemorySSA
|
||||
; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Value Information Analysis
|
||||
; CHECK-NEXT: Jump Threading
|
||||
|
||||
@@ -59,8 +59,6 @@
|
||||
; CHECK-NEXT: Memory SSA
|
||||
; CHECK-NEXT: Early CSE w/ MemorySSA
|
||||
; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
|
||||
; CHECK-NEXT: Dominator Tree Construction
|
||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
||||
; CHECK-NEXT: Function Alias Analysis Results
|
||||
; CHECK-NEXT: Lazy Value Information Analysis
|
||||
; CHECK-NEXT: Jump Threading
|
||||
|
||||
Reference in New Issue
Block a user