Introduce DIBuilder. It is intended to be a front-end friendly interface to emit...
[oota-llvm.git] / include / llvm / CallGraphSCCPass.h
index 3cff8f2006aa3287b2b43e482b3e08806321b01c..7154aa3259d2927350bb8d282c109764245bb603 100644 (file)
@@ -33,8 +33,7 @@ class CallGraphSCC;
   
 class CallGraphSCCPass : public Pass {
 public:
-  explicit CallGraphSCCPass(intptr_t pid) : Pass(PT_CallGraphSCC, pid) {}
-  explicit CallGraphSCCPass(void *pid) : Pass(PT_CallGraphSCC, pid) {}
+  explicit CallGraphSCCPass(char &pid) : Pass(PT_CallGraphSCC, pid) {}
 
   /// createPrinterPass - Get a pass that prints the Module
   /// corresponding to a CallGraph.
@@ -64,7 +63,7 @@ public:
 
   /// Assign pass manager to manager this pass
   virtual void assignPassManager(PMStack &PMS,
-                                 PassManagerType PMT =PMT_CallGraphPassManager);
+                                 PassManagerType PMT);
 
   ///  Return what kind of Pass Manager can manage this pass.
   virtual PassManagerType getPotentialPassManagerType() const {
@@ -93,15 +92,7 @@ public:
   
   /// ReplaceNode - This informs the SCC and the pass manager that the specified
   /// Old node has been deleted, and New is to be used in its place.
-  void ReplaceNode(CallGraphNode *Old, CallGraphNode *New) {
-    assert(Old != New && "Should not replace node with self");
-    for (unsigned i = 0, e = Nodes.size(); i != e; ++i)
-      if (Nodes[i] == Old) {
-        Nodes[i] = New;
-        return;
-      }
-    assert(0 && "Node not in SCC");
-  }
+  void ReplaceNode(CallGraphNode *Old, CallGraphNode *New);
   
   typedef std::vector<CallGraphNode*>::const_iterator iterator;
   iterator begin() const { return Nodes.begin(); }