diff options
| author | Gabor Greif <ggreif@gmail.com> | 2010-07-09 14:36:49 +0000 |
|---|---|---|
| committer | Gabor Greif <ggreif@gmail.com> | 2010-07-09 14:36:49 +0000 |
| commit | b0d56ffc85f2d1c5c1c02f25f72ba19344d97288 (patch) | |
| tree | 19e805c9f7856f557c59365708c718b69e08f0c4 /llvm/lib/Transforms | |
| parent | 4247949ce9524501601fc3104d34afe0280b7ad3 (diff) | |
| download | bcm5719-llvm-b0d56ffc85f2d1c5c1c02f25f72ba19344d97288.tar.gz bcm5719-llvm-b0d56ffc85f2d1c5c1c02f25f72ba19344d97288.zip | |
cache result of operator*
llvm-svn: 107969
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/GVN.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index 70a02b270bc..8b656dc9d4d 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -2128,26 +2128,27 @@ bool GVN::performPRE(Function &F) { for (pred_iterator PI = pred_begin(CurrentBlock), PE = pred_end(CurrentBlock); PI != PE; ++PI) { + BasicBlock *P = *PI; // We're not interested in PRE where the block is its // own predecessor, or in blocks with predecessors // that are not reachable. - if (*PI == CurrentBlock) { + if (P == CurrentBlock) { NumWithout = 2; break; - } else if (!localAvail.count(*PI)) { + } else if (!localAvail.count(P)) { NumWithout = 2; break; } DenseMap<uint32_t, Value*>::iterator predV = - localAvail[*PI]->table.find(ValNo); - if (predV == localAvail[*PI]->table.end()) { - PREPred = *PI; + localAvail[P]->table.find(ValNo); + if (predV == localAvail[P]->table.end()) { + PREPred = P; ++NumWithout; } else if (predV->second == CurInst) { NumWithout = 2; } else { - predMap[*PI] = predV->second; + predMap[P] = predV->second; ++NumWith; } } |

