diff options
author | Michael Zolotukhin <mzolotukhin@apple.com> | 2018-06-07 00:19:29 +0000 |
---|---|---|
committer | Michael Zolotukhin <mzolotukhin@apple.com> | 2018-06-07 00:19:29 +0000 |
commit | 31800864dc1f5bb99e8b6cb62bb3bfdda126a92f (patch) | |
tree | f41707ce9bcb81ef3145e3127c4bcb47371d3531 | |
parent | ac0f5cf74b4d4e7b4e6ee4b23948db52a37028f7 (diff) | |
download | bcm5719-llvm-31800864dc1f5bb99e8b6cb62bb3bfdda126a92f.tar.gz bcm5719-llvm-31800864dc1f5bb99e8b6cb62bb3bfdda126a92f.zip |
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
-rw-r--r-- | llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp | 2 | ||||
-rw-r--r-- | llvm/test/Other/opt-O2-pipeline.ll | 2 | ||||
-rw-r--r-- | llvm/test/Other/opt-O3-pipeline.ll | 2 | ||||
-rw-r--r-- | llvm/test/Other/opt-Os-pipeline.ll | 2 |
4 files changed, 2 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp b/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp index 488c4df2b19..761d4fec57f 100644 --- a/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp +++ b/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp @@ -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 diff --git a/llvm/test/Other/opt-O2-pipeline.ll b/llvm/test/Other/opt-O2-pipeline.ll index 445450f7e00..e150835fc0c 100644 --- a/llvm/test/Other/opt-O2-pipeline.ll +++ b/llvm/test/Other/opt-O2-pipeline.ll @@ -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 diff --git a/llvm/test/Other/opt-O3-pipeline.ll b/llvm/test/Other/opt-O3-pipeline.ll index 1dacd2b3a2e..56e14dc0419 100644 --- a/llvm/test/Other/opt-O3-pipeline.ll +++ b/llvm/test/Other/opt-O3-pipeline.ll @@ -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 diff --git a/llvm/test/Other/opt-Os-pipeline.ll b/llvm/test/Other/opt-Os-pipeline.ll index b34dcf63e56..2d481ce1e0e 100644 --- a/llvm/test/Other/opt-Os-pipeline.ll +++ b/llvm/test/Other/opt-Os-pipeline.ll @@ -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 |