[PATCH] D59889: [CGP] Reset DT when optimizing select instructions
Teresa Johnson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 27 11:44:22 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL357111: [CGP] Reset DT when optimizing select instructions (authored by tejohnson, committed by ).
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59889/new/
https://reviews.llvm.org/D59889
Files:
llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
Index: llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
+++ llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
@@ -362,7 +362,7 @@
bool optimizeExt(Instruction *&I);
bool optimizeExtUses(Instruction *I);
bool optimizeLoadExt(LoadInst *Load);
- bool optimizeSelectInst(SelectInst *SI, bool &ModifiedDT);
+ bool optimizeSelectInst(SelectInst *SI);
bool optimizeShuffleVectorInst(ShuffleVectorInst *SVI);
bool optimizeSwitchInst(SwitchInst *SI);
bool optimizeExtractElementInst(Instruction *Inst);
@@ -5921,7 +5921,7 @@
/// If we have a SelectInst that will likely profit from branch prediction,
/// turn it into a branch.
-bool CodeGenPrepare::optimizeSelectInst(SelectInst *SI, bool &ModifiedDT) {
+bool CodeGenPrepare::optimizeSelectInst(SelectInst *SI) {
// If branch conversion isn't desirable, exit early.
if (DisableSelectToBranch || OptSize || !TLI)
return false;
@@ -5962,7 +5962,11 @@
!isFormingBranchFromSelectProfitable(TTI, TLI, SI))
return false;
- ModifiedDT = true;
+ // The DominatorTree needs to be rebuilt by any consumers after this
+ // transformation. We simply reset here rather than setting the ModifiedDT
+ // flag to avoid restarting the function walk in runOnFunction for each
+ // select optimized.
+ DT.reset();
// Transform a sequence like this:
// start:
@@ -7016,7 +7020,7 @@
case Instruction::Call:
return optimizeCallInst(cast<CallInst>(I), ModifiedDT);
case Instruction::Select:
- return optimizeSelectInst(cast<SelectInst>(I), ModifiedDT);
+ return optimizeSelectInst(cast<SelectInst>(I));
case Instruction::ShuffleVector:
return optimizeShuffleVectorInst(cast<ShuffleVectorInst>(I));
case Instruction::Switch:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59889.192490.patch
Type: text/x-patch
Size: 1852 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190327/61a090a3/attachment.bin>
More information about the llvm-commits
mailing list