diff options
author | Sanjay Patel <spatel@rotateright.com> | 2016-11-27 15:53:48 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2016-11-27 15:53:48 +0000 |
commit | da9f7bf0fccdbcd00d3134eb60293da6f3ff8ca2 (patch) | |
tree | f1215e11cfcc0d77a3429b2ed09258ad6da9077e | |
parent | 5fcc99c27dba457d15f9061b809fcc33d9218e4e (diff) | |
download | bcm5719-llvm-da9f7bf0fccdbcd00d3134eb60293da6f3ff8ca2.tar.gz bcm5719-llvm-da9f7bf0fccdbcd00d3134eb60293da6f3ff8ca2.zip |
fix formatting; NFC
llvm-svn: 287997
-rw-r--r-- | llvm/lib/Transforms/Utils/SimplifyInstructions.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp b/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp index 0be0b65e20a..1220490123c 100644 --- a/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp @@ -34,14 +34,14 @@ using namespace llvm; STATISTIC(NumSimplified, "Number of redundant instructions removed"); -static bool runImpl(Function &F, const DominatorTree *DT, const TargetLibraryInfo *TLI, - AssumptionCache *AC) { +static bool runImpl(Function &F, const DominatorTree *DT, + const TargetLibraryInfo *TLI, AssumptionCache *AC) { const DataLayout &DL = F.getParent()->getDataLayout(); - SmallPtrSet<const Instruction*, 8> S1, S2, *ToSimplify = &S1, *Next = &S2; + SmallPtrSet<const Instruction *, 8> S1, S2, *ToSimplify = &S1, *Next = &S2; bool Changed = false; do { - for (BasicBlock *BB : depth_first(&F.getEntryBlock())) + for (BasicBlock *BB : depth_first(&F.getEntryBlock())) { // Here be subtlety: the iterator must be incremented before the loop // body (not sure why), so a range-for loop won't work here. for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;) { @@ -51,8 +51,9 @@ static bool runImpl(Function &F, const DominatorTree *DT, const TargetLibraryInf // empty and we only bother simplifying instructions that are in it. if (!ToSimplify->empty() && !ToSimplify->count(I)) continue; + // Don't waste time simplifying unused instructions. - if (!I->use_empty()) + if (!I->use_empty()) { if (Value *V = SimplifyInstruction(I, DL, TLI, DT, AC)) { // Mark all uses for resimplification next time round the loop. for (User *U : I->users()) @@ -61,16 +62,17 @@ static bool runImpl(Function &F, const DominatorTree *DT, const TargetLibraryInf ++NumSimplified; Changed = true; } - bool res = RecursivelyDeleteTriviallyDeadInstructions(I, TLI); - if (res) { - // RecursivelyDeleteTriviallyDeadInstruction can remove - // more than one instruction, so simply incrementing the - // iterator does not work. When instructions get deleted - // re-iterate instead. - BI = BB->begin(); BE = BB->end(); - Changed |= res; + } + if (RecursivelyDeleteTriviallyDeadInstructions(I, TLI)) { + // RecursivelyDeleteTriviallyDeadInstruction can remove more than one + // instruction, so simply incrementing the iterator does not work. + // When instructions get deleted re-iterate instead. + BI = BB->begin(); + BE = BB->end(); + Changed = true; } } + } // Place the list of instructions to simplify on the next loop iteration // into ToSimplify. |