class Type;
class DSGraph;
class DSNode;
-class LocalDataStructures; // A collection of local graphs for a program
-class BUDataStructures; // A collection of bu graphs for a program
-class TDDataStructures; // A collection of td graphs for a program
// FIXME: move this stuff to a private header
namespace DataStructureAnalysis {
}
};
+
// BUDataStructures - The analysis that computes the interprocedurally closed
// data structure graphs for all of the functions in the program. This pass
// only performs a "Bottom Up" propagation (hence the name).
DSGraph &calculateGraph(Function &F);
};
+
// TDDataStructures - Analysis that computes new data structure graphs
// for each function using the closed graphs for the callers computed
// by the bottom-up pass.
void ResolveCallSite(DSGraph &Graph, const DSCallSite &CallSite);
};
-#if 0
-// GlobalDSGraph - A common graph for all the globals and their outgoing links
-// to externally visible nodes. This includes GlobalValues, New nodes,
-// Cast nodes, and Calls. This graph can only be used by one of the
-// individual function graphs, and it goes away when they all go away.
-//
-class GlobalDSGraph : public DSGraph {
- hash_set<const DSGraph*> Referrers;
- void addReference(const DSGraph* referrer);
- void removeReference(const DSGraph* referrer);
- friend class DSGraph; // give access to Referrers
-
- GlobalDSGraph(const GlobalDSGraph &GlobalDSG); // Do not implement
-
- // Helper function for cloneGlobals and cloneCalls
- DSNode* cloneNodeInto(DSNode *OldNode,
- std::map<const DSNode*, DSNode*> &NodeCache,
- bool GlobalsAreFinal = false);
-
-public:
- GlobalDSGraph(); // Create an empty DSGraph
- virtual ~GlobalDSGraph();
-
- void cloneGlobals(DSGraph& Graph, bool CloneCalls = false);
- void cloneCalls (DSGraph& Graph);
-};
-#endif
-
#endif
class Type;
class DSGraph;
class DSNode;
-class LocalDataStructures; // A collection of local graphs for a program
-class BUDataStructures; // A collection of bu graphs for a program
-class TDDataStructures; // A collection of td graphs for a program
// FIXME: move this stuff to a private header
namespace DataStructureAnalysis {
}
};
+
// BUDataStructures - The analysis that computes the interprocedurally closed
// data structure graphs for all of the functions in the program. This pass
// only performs a "Bottom Up" propagation (hence the name).
DSGraph &calculateGraph(Function &F);
};
+
// TDDataStructures - Analysis that computes new data structure graphs
// for each function using the closed graphs for the callers computed
// by the bottom-up pass.
void ResolveCallSite(DSGraph &Graph, const DSCallSite &CallSite);
};
-#if 0
-// GlobalDSGraph - A common graph for all the globals and their outgoing links
-// to externally visible nodes. This includes GlobalValues, New nodes,
-// Cast nodes, and Calls. This graph can only be used by one of the
-// individual function graphs, and it goes away when they all go away.
-//
-class GlobalDSGraph : public DSGraph {
- hash_set<const DSGraph*> Referrers;
- void addReference(const DSGraph* referrer);
- void removeReference(const DSGraph* referrer);
- friend class DSGraph; // give access to Referrers
-
- GlobalDSGraph(const GlobalDSGraph &GlobalDSG); // Do not implement
-
- // Helper function for cloneGlobals and cloneCalls
- DSNode* cloneNodeInto(DSNode *OldNode,
- std::map<const DSNode*, DSNode*> &NodeCache,
- bool GlobalsAreFinal = false);
-
-public:
- GlobalDSGraph(); // Create an empty DSGraph
- virtual ~GlobalDSGraph();
-
- void cloneGlobals(DSGraph& Graph, bool CloneCalls = false);
- void cloneCalls (DSGraph& Graph);
-};
-#endif
-
#endif