mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 21:32:39 +00:00
performance: cache result of looking up user
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100862 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5ce1bf9531
commit
c092362300
@ -434,19 +434,21 @@ static bool FindAllMemoryUses(Instruction *I,
|
|||||||
// Loop over all the uses, recursively processing them.
|
// Loop over all the uses, recursively processing them.
|
||||||
for (Value::use_iterator UI = I->use_begin(), E = I->use_end();
|
for (Value::use_iterator UI = I->use_begin(), E = I->use_end();
|
||||||
UI != E; ++UI) {
|
UI != E; ++UI) {
|
||||||
if (LoadInst *LI = dyn_cast<LoadInst>(*UI)) {
|
User *U = *UI;
|
||||||
|
|
||||||
|
if (LoadInst *LI = dyn_cast<LoadInst>(U)) {
|
||||||
MemoryUses.push_back(std::make_pair(LI, UI.getOperandNo()));
|
MemoryUses.push_back(std::make_pair(LI, UI.getOperandNo()));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StoreInst *SI = dyn_cast<StoreInst>(*UI)) {
|
if (StoreInst *SI = dyn_cast<StoreInst>(U)) {
|
||||||
unsigned opNo = UI.getOperandNo();
|
unsigned opNo = UI.getOperandNo();
|
||||||
if (opNo == 0) return true; // Storing addr, not into addr.
|
if (opNo == 0) return true; // Storing addr, not into addr.
|
||||||
MemoryUses.push_back(std::make_pair(SI, opNo));
|
MemoryUses.push_back(std::make_pair(SI, opNo));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CallInst *CI = dyn_cast<CallInst>(*UI)) {
|
if (CallInst *CI = dyn_cast<CallInst>(U)) {
|
||||||
InlineAsm *IA = dyn_cast<InlineAsm>(CI->getCalledValue());
|
InlineAsm *IA = dyn_cast<InlineAsm>(CI->getCalledValue());
|
||||||
if (IA == 0) return true;
|
if (IA == 0) return true;
|
||||||
|
|
||||||
@ -456,7 +458,7 @@ static bool FindAllMemoryUses(Instruction *I,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FindAllMemoryUses(cast<Instruction>(*UI), MemoryUses, ConsideredInsts,
|
if (FindAllMemoryUses(cast<Instruction>(U), MemoryUses, ConsideredInsts,
|
||||||
TLI))
|
TLI))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user