cache result of operator*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108150 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Gabor Greif 2010-07-12 15:48:26 +00:00
parent be4d10d7fa
commit a9b8338bfa

View File

@ -525,17 +525,20 @@ bool InstCombiner::SimplifyStoreAtEndOfBlock(StoreInst &SI) {
// Determine whether Dest has exactly two predecessors and, if so, compute
// the other predecessor.
pred_iterator PI = pred_begin(DestBB);
BasicBlock *P = *PI;
BasicBlock *OtherBB = 0;
if (*PI != StoreBB)
OtherBB = *PI;
++PI;
if (PI == pred_end(DestBB))
if (P != StoreBB)
OtherBB = P;
if (++PI == pred_end(DestBB))
return false;
if (*PI != StoreBB) {
P = *PI;
if (P != StoreBB) {
if (OtherBB)
return false;
OtherBB = *PI;
OtherBB = P;
}
if (++PI != pred_end(DestBB))
return false;