cache results of operator*

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108143 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Gabor Greif 2010-07-12 14:12:11 +00:00
parent ee1f44fba3
commit b7df500063

View File

@ -406,12 +406,14 @@ void LowerSetJmp::TransformSetJmpCall(CallInst* Inst)
// Loop over all of the uses of instruction. If any of them are after the // Loop over all of the uses of instruction. If any of them are after the
// call, "spill" the value to the stack. // call, "spill" the value to the stack.
for (Value::use_iterator UI = II->use_begin(), E = II->use_end(); for (Value::use_iterator UI = II->use_begin(), E = II->use_end();
UI != E; ++UI) UI != E; ++UI) {
if (cast<Instruction>(*UI)->getParent() != ABlock || User *U = *UI;
InstrsAfterCall.count(cast<Instruction>(*UI))) { if (cast<Instruction>(U)->getParent() != ABlock ||
InstrsAfterCall.count(cast<Instruction>(U))) {
DemoteRegToStack(*II); DemoteRegToStack(*II);
break; break;
} }
}
InstrsAfterCall.clear(); InstrsAfterCall.clear();
// Change the setjmp call into a branch statement. We'll remove the // Change the setjmp call into a branch statement. We'll remove the