mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-16 07:38:43 +00:00
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:
parent
ee1f44fba3
commit
b7df500063
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user