Hi, I have some basic questions. I'd appreciate if you can
help me with them.
1. In the LLVM programmer manual, section "Finding call sites:
a slightly more complex example", there is such piece of code:
-------------------------------------------------
class OurFunctionPass : public FunctionPass {
public:
OurFunctionPass(): callCounter(0) { }
virtual runOnFunction(Function& F) {
for(Function::iterator b = F.begin(), be F.end(); b != be; ++b) {
for(BasicBlock::iterator i = b->begin(); ie b->end(); i !=
ie; ++i) {
if (CallInst* callInst dyn_cast<CallInst>(&*inst))
{
// we know we've encountered a call
instruction, so we
// need to determine if it's a call to
the
// function pointed to by m_func or
not.
if(callInst->getCalledFunction() =targetFunc)
++callCounter;
}
}
}
private:
unsigned callCounter;
};
------------------------------------------
I don't understand in this line:
if (CallInst* callInst = dyn_cast<CallInst>(&*inst)) {
Where does 'inst' come from? What is inst and how should we
get it? could you please clarify?
Thanks,
xiaodong