aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms/Utils/BreakCriticalEdges.cpp
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2010-07-09 16:31:08 +0000
committerGabor Greif <ggreif@gmail.com>2010-07-09 16:31:08 +0000
commitca91cacbad01faad4c2e2b60b54c82ec8b4e8b25 (patch)
tree68e1502b0a96a462b73ebeadb5848b661849ace4 /lib/Transforms/Utils/BreakCriticalEdges.cpp
parent644936d8febc42e96ea00d2120bb83b3e6342a55 (diff)
downloadexternal_llvm-ca91cacbad01faad4c2e2b60b54c82ec8b4e8b25.tar.gz
external_llvm-ca91cacbad01faad4c2e2b60b54c82ec8b4e8b25.tar.bz2
external_llvm-ca91cacbad01faad4c2e2b60b54c82ec8b4e8b25.zip
cache result of operator*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107984 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/BreakCriticalEdges.cpp')
-rw-r--r--lib/Transforms/Utils/BreakCriticalEdges.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Transforms/Utils/BreakCriticalEdges.cpp b/lib/Transforms/Utils/BreakCriticalEdges.cpp
index fe99daa112..26f53c05a0 100644
--- a/lib/Transforms/Utils/BreakCriticalEdges.cpp
+++ b/lib/Transforms/Utils/BreakCriticalEdges.cpp
@@ -403,11 +403,13 @@ BasicBlock *llvm::SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum,
bool HasPredOutsideOfLoop = false;
BasicBlock *Exit = ExitBlocks[i];
for (pred_iterator I = pred_begin(Exit), E = pred_end(Exit);
- I != E; ++I)
- if (TIL->contains(*I))
- Preds.push_back(*I);
+ I != E; ++I) {
+ BasicBlock *P = *I;
+ if (TIL->contains(P))
+ Preds.push_back(P);
else
HasPredOutsideOfLoop = true;
+ }
// If there are any preds not in the loop, we'll need to split
// the edges. The Preds.empty() check is needed because a block
// may appear multiple times in the list. We can't use