'Pass' should now not be derived from by clients. Instead, they should derive
[oota-llvm.git] / lib / Transforms / Instrumentation / EmitFunctions.cpp
index c74f93c94b8d17b577374f095dd3fa04007e7611..92abffb8ead090183c7ee907abb1a8260090643c 100644 (file)
@@ -7,7 +7,9 @@
 // 
 //===----------------------------------------------------------------------===//
 //
-// This inserts a global constant table with function pointers all along
+// This inserts a global constant table with function pointers all along.
+//
+// NOTE: This pass is used by the reoptimizer only.
 //
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Module.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CFG.h"
-
-namespace llvm {
-
-enum Color{
-  WHITE,
-  GREY,
-  BLACK
-};
+using namespace llvm;
 
 namespace {
-  struct EmitFunctionTable : public Pass {
-    bool run(Module &M);
+  enum Color{
+    WHITE,
+    GREY,
+    BLACK
   };
   
-  RegisterOpt<EmitFunctionTable> X("emitfuncs", "Emit a Function Table");
+  struct EmitFunctionTable : public ModulePass {
+    bool runOnModule(Module &M);
+  };
+  
+  RegisterOpt<EmitFunctionTable>
+  X("emitfuncs", "Emit a function table for the reoptimizer");
 }
 
-char doDFS(BasicBlock * node,std::map<BasicBlock *, Color > &color){
+static char doDFS(BasicBlock * node,std::map<BasicBlock *, Color > &color){
   color[node] = GREY;
 
   for(succ_iterator vl = succ_begin(node), ve = succ_end(node); vl != ve; ++vl){
@@ -56,13 +58,13 @@ char doDFS(BasicBlock * node,std::map<BasicBlock *, Color > &color){
   return 1;
 }
 
-char hasBackEdge(Function *F){
+static char hasBackEdge(Function *F){
   std::map<BasicBlock *, Color > color;
   return doDFS(F->begin(), color);
 }
 
 // Per Module pass for inserting function table
-bool EmitFunctionTable::run(Module &M){
+bool EmitFunctionTable::runOnModule(Module &M){
   std::vector<const Type*> vType;
  
   std::vector<Constant *> vConsts;
@@ -75,7 +77,7 @@ bool EmitFunctionTable::run(Module &M){
     
       //std::cerr<<MI;
 
-      vConsts.push_back(ConstantPointerRef::get(MI));
+      vConsts.push_back(MI);
       sBCons.push_back(ConstantInt::get(Type::SByteTy, hasBackEdge(MI)));
       
       counter++;
@@ -106,5 +108,3 @@ bool EmitFunctionTable::run(Module &M){
   M.getGlobalList().push_back(fnCount);
   return true;  // Always modifies program
 }
-
-} // End llvm namespace