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:
Duncan Sands 2008-09-09 19:56:34 +00:00
parent e4c6b61ebd
commit 7ca9d81bce

View File

@ -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
// anything.
if (F->isDeclaration() && !F->isIntrinsic())
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.
for (Function::iterator BB = F->begin(), BBE = F->end(); BB != BBE; ++BB)
for (BasicBlock::iterator II = BB->begin(), IE = BB->end();