42                                  std::vector<Lattice*>& initLattices, std::vector<NodeFact*>& initFacts)=0;
 
   48        std::set<Function> visited;
 
   54        { this->interAnalysis = intraDFAnalysis->interAnalysis; }
 
   64        virtual bool runAnalysis(
const Function& func, 
NodeState* state, 
bool analyzeDueToCallers, std::set<Function> calleesUpdated)=0;
 
   72                bool analyzeDueToCallers = 
true;
 
   75                std::set<Function> calleesUpdated;
 
   77                return runAnalysis(func, state, analyzeDueToCallers, calleesUpdated);
 
 
  217        bool runAnalysis(
const Function& func, 
NodeState* state, 
bool analyzeDueToCallers, std::set<Function> calleesUpdated);
 
  222        bool propagateStateToNextNode(
 
  223             const std::vector<Lattice*>& curNodeState, 
DataflowNode curDFNode, 
int nodeIndex,
 
  224             const std::vector<Lattice*>& nextNodeState, 
DataflowNode nextDFNode);
 
  226        std::vector<DataflowNode> gatherDescendants(std::vector<DataflowEdge> edges,
 
  231          getInitialWorklist(
const Function &func, 
bool firstVisit, 
bool analyzeDueToCallers, 
const set<Function> &calleesUpdated, 
NodeState *fState) = 0;
 
  232        virtual vector<Lattice*> getLatticeAnte(
NodeState *state) = 0;
 
  233        virtual vector<Lattice*> getLatticePost(
NodeState *state) = 0;
 
  240        virtual vector<DataflowNode> getDescendants(
const DataflowNode &n) = 0;
 
 
  395        std::vector<Lattice*> mergedLatsRetStmt;
 
  396        std::vector<Lattice*> mergedLatsRetVal;
 
  411        MergeAllReturnStates(
Analysis* analysis, 
const std::vector<Lattice*>& mergedLatsRetStmt, 
const std::vector<Lattice*>& mergedLatsRetVal):
 
  412                analysis(analysis), mergedLatsRetStmt(mergedLatsRetStmt), mergedLatsRetVal(mergedLatsRetVal)
 
  419        static bool mergeLats(std::vector<Lattice*>& mergedLat, 
const std::vector<Lattice*>& lats);
 
  422        std::vector<Lattice*>& getMergedLatsRetStmt() { 
return mergedLatsRetStmt; }
 
  425        std::vector<Lattice*>& getMergedLatsRetVal() { 
return mergedLatsRetVal; }
 
  428        bool getModified() { 
return modified; }
 
 
  440        std::vector<Lattice*>& latsAtFuncReturn;
 
  442        std::vector<Lattice*>& latsRetVal;
 
  447        DFStateAtReturns(std::vector<Lattice*>& latsAtFuncReturn, std::vector<Lattice*>& latsRetVal);
 
  458        std::vector<Lattice*>& getLatsAtFuncReturn() { 
return latsAtFuncReturn; }
 
  461        std::vector<Lattice*>& getLatsRetVal() { 
return latsRetVal; }
 
  463        std::string str(std::string indent);