diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-02-04 19:14:57 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-02-04 19:14:57 +0000 |
commit | c26a17a822bb91084ce29a97ba01dfcf7f2e5074 (patch) | |
tree | befc6e72dd132a9e2d7d69494e47e2c8ec341d88 /llvm/lib/Transforms | |
parent | 6e25858b5cfc2c88ca940cf9181904ad7d4bd32d (diff) | |
download | llvm-c26a17a822bb91084ce29a97ba01dfcf7f2e5074.zip llvm-c26a17a822bb91084ce29a97ba01dfcf7f2e5074.tar.gz llvm-c26a17a822bb91084ce29a97ba01dfcf7f2e5074.tar.bz2 |
Add range adapters predecessors() and successors() for BBs
Use them in two isolated transforms so we know they work and aren't dead
code.
llvm-svn: 228173
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/IPO/ArgumentPromotion.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Transforms/IPO/PartialInlining.cpp | 10 |
2 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp index 3282022..7e48ce3 100644 --- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp +++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp @@ -561,8 +561,7 @@ bool ArgPromotion::isSafeToPromoteArgument(Argument *Arg, // Now check every path from the entry block to the load for transparency. // To do this, we perform a depth first search on the inverse CFG from the // loading block. - for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) { - BasicBlock *P = *PI; + for (BasicBlock *P : predecessors(BB)) { for (BasicBlock *TranspBB : inverse_depth_first_ext(P, TranspBlocks)) if (AA.canBasicBlockModify(*TranspBB, Loc)) return false; diff --git a/llvm/lib/Transforms/IPO/PartialInlining.cpp b/llvm/lib/Transforms/IPO/PartialInlining.cpp index 76d6dfa..4a7cb7b 100644 --- a/llvm/lib/Transforms/IPO/PartialInlining.cpp +++ b/llvm/lib/Transforms/IPO/PartialInlining.cpp @@ -58,13 +58,13 @@ Function* PartialInliner::unswitchFunction(Function* F) { BasicBlock* returnBlock = nullptr; BasicBlock* nonReturnBlock = nullptr; unsigned returnCount = 0; - for (succ_iterator SI = succ_begin(entryBlock), SE = succ_end(entryBlock); - SI != SE; ++SI) - if (isa<ReturnInst>((*SI)->getTerminator())) { - returnBlock = *SI; + for (BasicBlock *BB : successors(entryBlock)) { + if (isa<ReturnInst>(BB->getTerminator())) { + returnBlock = BB; returnCount++; } else - nonReturnBlock = *SI; + nonReturnBlock = BB; + } if (returnCount != 1) return nullptr; |