///
Function *getSomeCalleeForCallSite(const CallSite &CS) const;
- /// getDSGraphForCallSite - Return the common data structure graph for
- /// callees at the specified call site.
- ///
- DSGraph &getDSGraphForCallSite(const CallSite &CS) const {
- return this->getDSGraph(*getSomeCalleeForCallSite(CS));
- }
-
- /// getEquivClassForCallSite - Get the set of functions in the equivalence
- /// class for a given call site.
- ///
- const std::set<Function*>& getEquivClassForCallSite(const CallSite& CS) {
- Function* leaderF = FuncECs.findClass(getSomeCalleeForCallSite(CS));
- return FuncECs.getEqClass(leaderF);
- }
-
DSGraph &getGlobalsGraph() const {
return *GlobalsGraph;
}
AU.addRequired<CompleteBUDataStructures>();
}
- /// print - Print out the analysis results...
- ///
- void print(std::ostream &O, const Module *M) const {}
-
private:
void buildIndirectFunctionSets(Module &M);
}
#endif
-// getDSGraphForCallSite - Return the common data structure graph for
-// callees at the specified call site.
+// getSomeCalleeForCallSite - Return any one callee function at a call site.
//
Function *PA::EquivClassGraphs::
getSomeCalleeForCallSite(const CallSite &CS) const {
Function *thisFunc = CS.getCaller();
- assert(thisFunc && "getDSGraphForCallSite(): Not a valid call site?");
+ assert(thisFunc && "getSomeCalleeForCallSite(): Not a valid call site?");
DSGraph &DSG = getDSGraph(*thisFunc);
DSNode *calleeNode = DSG.getNodeForValue(CS.getCalledValue()).getNode();
std::map<DSNode*, Function *>::const_iterator I =