diff options
author | Hal Finkel <hfinkel@anl.gov> | 2015-02-15 15:51:23 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2015-02-15 15:51:23 +0000 |
commit | 92fb2d3803a433e50b748dcdf98d2951312686c8 (patch) | |
tree | d9f69af2b81a84e7cb108ef09e20dfbd69142757 /llvm/lib | |
parent | c6035cff5545c9f4b033439b282e45032caa6f5f (diff) | |
download | llvm-92fb2d3803a433e50b748dcdf98d2951312686c8.zip llvm-92fb2d3803a433e50b748dcdf98d2951312686c8.tar.gz llvm-92fb2d3803a433e50b748dcdf98d2951312686c8.tar.bz2 |
[ADCE] Use inst_range and range-based fors
Convert a few loops to range-based fors; NFC.
llvm-svn: 229318
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Scalar/ADCE.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/llvm/lib/Transforms/Scalar/ADCE.cpp b/llvm/lib/Transforms/Scalar/ADCE.cpp index 06a4dd9..effd87e 100644 --- a/llvm/lib/Transforms/Scalar/ADCE.cpp +++ b/llvm/lib/Transforms/Scalar/ADCE.cpp @@ -58,14 +58,13 @@ bool ADCE::runOnFunction(Function& F) { SmallVector<Instruction*, 128> Worklist; // Collect the set of "root" instructions that are known live. - for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I) - if (isa<TerminatorInst>(I.getInstructionIterator()) || - isa<DbgInfoIntrinsic>(I.getInstructionIterator()) || - isa<LandingPadInst>(I.getInstructionIterator()) || - I->mayHaveSideEffects()) { - Alive.insert(I.getInstructionIterator()); - Worklist.push_back(I.getInstructionIterator()); + for (Instruction &I : inst_range(F)) { + if (isa<TerminatorInst>(I) || isa<DbgInfoIntrinsic>(I) || + isa<LandingPadInst>(I) || I.mayHaveSideEffects()) { + Alive.insert(&I); + Worklist.push_back(&I); } + } // Propagate liveness backwards to operands. while (!Worklist.empty()) { @@ -81,16 +80,16 @@ bool ADCE::runOnFunction(Function& F) { // which have no side effects and do not influence the control flow or return // value of the function, and may therefore be deleted safely. // NOTE: We reuse the Worklist vector here for memory efficiency. - for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I) - if (!Alive.count(I.getInstructionIterator())) { - Worklist.push_back(I.getInstructionIterator()); - I->dropAllReferences(); + for (Instruction &I : inst_range(F)) { + if (!Alive.count(&I)) { + Worklist.push_back(&I); + I.dropAllReferences(); } + } - for (SmallVectorImpl<Instruction *>::iterator I = Worklist.begin(), - E = Worklist.end(); I != E; ++I) { + for (Instruction *&I : Worklist) { ++NumRemoved; - (*I)->eraseFromParent(); + I->eraseFromParent(); } return !Worklist.empty(); |