llvm.org GIT mirror llvm / d13f628
SpeculativeExecution Pass: Set PreserveCFG to avoid unnecessary analyses invalidation. The pass doesn't touch CFG in any way, only moves instructions between blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334150 91177308-0d34-0410-b5e6-96231b3b80d8 Michael Zolotukhin 1 year, 3 months ago
4 changed file(s) with 2 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
136136 void SpeculativeExecutionLegacyPass::getAnalysisUsage(AnalysisUsage &AU) const {
137137 AU.addRequired();
138138 AU.addPreserved();
139 AU.setPreservesCFG();
139140 }
140141
141142 bool SpeculativeExecutionLegacyPass::runOnFunction(Function &F) {
313314 return PreservedAnalyses::all();
314315 PreservedAnalyses PA;
315316 PA.preserve();
317 PA.preserveSet();
316318 return PA;
317319 }
318320 } // namespace llvm
5858 ; CHECK-NEXT: Memory SSA
5959 ; CHECK-NEXT: Early CSE w/ MemorySSA
6060 ; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
61 ; CHECK-NEXT: Dominator Tree Construction
62 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
6361 ; CHECK-NEXT: Function Alias Analysis Results
6462 ; CHECK-NEXT: Lazy Value Information Analysis
6563 ; CHECK-NEXT: Jump Threading
6161 ; CHECK-NEXT: Memory SSA
6262 ; CHECK-NEXT: Early CSE w/ MemorySSA
6363 ; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
64 ; CHECK-NEXT: Dominator Tree Construction
65 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
6664 ; CHECK-NEXT: Function Alias Analysis Results
6765 ; CHECK-NEXT: Lazy Value Information Analysis
6866 ; CHECK-NEXT: Jump Threading
5858 ; CHECK-NEXT: Memory SSA
5959 ; CHECK-NEXT: Early CSE w/ MemorySSA
6060 ; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
61 ; CHECK-NEXT: Dominator Tree Construction
62 ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
6361 ; CHECK-NEXT: Function Alias Analysis Results
6462 ; CHECK-NEXT: Lazy Value Information Analysis
6563 ; CHECK-NEXT: Jump Threading