mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-24 08:33:39 +00:00
Simplify this some more. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56003 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e4c6b61ebd
commit
7ca9d81bce
@ -124,26 +124,19 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Loop over all of the users of the function, looking for non-call uses.
|
||||||
|
for (Value::use_iterator I = F->use_begin(), E = F->use_end(); I != E; ++I)
|
||||||
|
if ((!isa<CallInst>(*I) && !isa<InvokeInst>(*I)) || I.getOperandNo()) {
|
||||||
|
// Not a call, or being used as a parameter rather than as the callee.
|
||||||
|
ExternalCallingNode->addCalledFunction(CallSite(), Node);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// If this function is not defined in this translation unit, it could call
|
// If this function is not defined in this translation unit, it could call
|
||||||
// anything.
|
// anything.
|
||||||
if (F->isDeclaration() && !F->isIntrinsic())
|
if (F->isDeclaration() && !F->isIntrinsic())
|
||||||
Node->addCalledFunction(CallSite(), CallsExternalNode);
|
Node->addCalledFunction(CallSite(), CallsExternalNode);
|
||||||
|
|
||||||
// Loop over all of the users of the function, looking for non-call uses.
|
|
||||||
bool isUsedExternally = false;
|
|
||||||
for (Value::use_iterator I = F->use_begin(), E = F->use_end();
|
|
||||||
I != E && !isUsedExternally; ++I) {
|
|
||||||
if (Instruction *Inst = dyn_cast<Instruction>(*I)) {
|
|
||||||
CallSite CS = CallSite::get(Inst);
|
|
||||||
// Not a call? Or F being passed as a parameter not as the callee?
|
|
||||||
isUsedExternally = !CS.getInstruction() || I.getOperandNo();
|
|
||||||
} else { // User is not a direct call!
|
|
||||||
isUsedExternally = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isUsedExternally)
|
|
||||||
ExternalCallingNode->addCalledFunction(CallSite(), Node);
|
|
||||||
|
|
||||||
// Look for calls by this function.
|
// Look for calls by this function.
|
||||||
for (Function::iterator BB = F->begin(), BBE = F->end(); BB != BBE; ++BB)
|
for (Function::iterator BB = F->begin(), BBE = F->end(); BB != BBE; ++BB)
|
||||||
for (BasicBlock::iterator II = BB->begin(), IE = BB->end();
|
for (BasicBlock::iterator II = BB->begin(), IE = BB->end();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user