remove reoptimizer-specific passes
authorChris Lattner <sabre@nondot.org>
Tue, 20 Feb 2007 05:31:49 +0000 (05:31 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 20 Feb 2007 05:31:49 +0000 (05:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34439 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/EmitFunctions.cpp [deleted file]
lib/Transforms/Instrumentation/TraceBasicBlocks.cpp [deleted file]

diff --git a/lib/Transforms/Instrumentation/EmitFunctions.cpp b/lib/Transforms/Instrumentation/EmitFunctions.cpp
deleted file mode 100644 (file)
index 6fe10d0..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-//===-- EmitFunctions.cpp - interface to insert instrumentation -----------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This inserts into the input module three new global constants containing
-// mapping information pertinent to the Reoptimizer's runtime library:
-// 1) a structure containing a pointer to each function;
-// 2) an array containing a boolean which is true iff the corresponding
-//    function in 1) contains a back-edge branch suitable for the Reoptimizer's
-//    first-level instrumentation;
-// 3) an integer containing the number of entries in 1) and 2).
-//
-// NOTE: This pass is used by the reoptimizer only.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Support/CFG.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Transforms/Instrumentation.h"
-using namespace llvm;
-
-namespace llvm {
-
-namespace {
-  enum Color{
-    WHITE,
-    GREY,
-    BLACK
-  };
-
-  struct VISIBILITY_HIDDEN EmitFunctionTable : public ModulePass {
-    bool runOnModule(Module &M);
-  };
-
-  RegisterPass<EmitFunctionTable>
-  X("emitfuncs", "Emit a function table for the reoptimizer");
-}
-
-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){
-
-    BasicBlock *BB = *vl;
-
-    if(color[BB]!=GREY && color[BB]!=BLACK){
-      if(!doDFS(BB, color)){
-        return 0;
-      }
-    }
-
-    //if has backedge
-    else if(color[BB]==GREY)
-      return 0;
-
-  }
-
-  color[node] = BLACK;
-  return 1;
-}
-
-static char hasBackEdge(Function *F){
-  std::map<BasicBlock *, Color > color;
-  return doDFS(F->begin(), color);
-}
-
-// Per Module pass for inserting function table
-bool EmitFunctionTable::runOnModule(Module &M){
-  std::vector<const Type*> vType;
-
-  std::vector<Constant *> vConsts;
-  std::vector<Constant *> sBCons;
-
-  unsigned int counter = 0;
-  for(Module::iterator MI = M.begin(), ME = M.end(); MI != ME; ++MI)
-    if (!MI->isDeclaration()) {
-      vType.push_back(MI->getType());
-
-      //std::cerr<<MI;
-
-      vConsts.push_back(MI);
-      sBCons.push_back(ConstantInt::get(Type::Int8Ty, hasBackEdge(MI)));
-
-      counter++;
-    }
-
-  StructType *sttype = StructType::get(vType);
-  Constant *cstruct = ConstantStruct::get(sttype, vConsts);
-
-  GlobalVariable *gb = new GlobalVariable(cstruct->getType(), true,
-                                          GlobalValue::ExternalLinkage,
-                                          cstruct, "llvmFunctionTable");
-  M.getGlobalList().push_back(gb);
-
-  Constant *constArray = ConstantArray::get(ArrayType::get(Type::Int8Ty,
-                                                                sBCons.size()),
-                                                 sBCons);
-
-  GlobalVariable *funcArray = new GlobalVariable(constArray->getType(), true,
-                                              GlobalValue::ExternalLinkage,
-                                              constArray, "llvmSimpleFunction");
-
-  M.getGlobalList().push_back(funcArray);
-
-  ConstantInt *cnst = ConstantInt::get(Type::Int32Ty, counter);
-  GlobalVariable *fnCount = new GlobalVariable(Type::Int32Ty, true,
-                                               GlobalValue::ExternalLinkage,
-                                               cnst, "llvmFunctionCount");
-  M.getGlobalList().push_back(fnCount);
-  return true;  // Always modifies program
-}
-
-ModulePass *createEmitFunctionTablePass () {
-  return new EmitFunctionTable();
-}
-
-} // end namespace llvm
diff --git a/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp b/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp
deleted file mode 100644 (file)
index a6c2071..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-//===- TraceBasicBlocks.cpp - Insert basic-block trace instrumentation ----===//
-//
-//                      The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass instruments the specified program with calls into a runtime
-// library that cause it to output a trace of basic blocks as a side effect
-// of normal execution.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ProfilingUtils.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Transforms/Utils/BasicBlockUtils.h"
-#include "llvm/Transforms/Instrumentation.h"
-#include "llvm/Instructions.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Debug.h"
-#include <set>
-using namespace llvm;
-
-namespace {
-  class VISIBILITY_HIDDEN TraceBasicBlocks : public ModulePass {
-    bool runOnModule(Module &M);
-  };
-
-  RegisterPass<TraceBasicBlocks> X("trace-basic-blocks",
-                              "Insert instrumentation for basic block tracing");
-}
-
-ModulePass *llvm::createTraceBasicBlockPass()
-{
-  return new TraceBasicBlocks();
-}
-
-static void InsertInstrumentationCall (BasicBlock *BB,
-                                       const std::string FnName,
-                                       unsigned BBNumber) {
-  DOUT << "InsertInstrumentationCall (\"" << BB->getName ()
-       << "\", \"" << FnName << "\", " << BBNumber << ")\n";
-  Module &M = *BB->getParent ()->getParent ();
-  Constant *InstrFn = M.getOrInsertFunction (FnName, Type::VoidTy,
-                                             Type::Int32Ty, (Type *)0);
-  
-  // Insert the call after any alloca or PHI instructions.
-  BasicBlock::iterator InsertPos = BB->begin();
-  while (isa<AllocaInst>(InsertPos) || isa<PHINode>(InsertPos))
-    ++InsertPos;
-
-  new CallInst(InstrFn, ConstantInt::get (Type::Int32Ty, BBNumber),
-               "", InsertPos);
-}
-
-bool TraceBasicBlocks::runOnModule(Module &M) {
-  Function *Main = M.getFunction("main");
-  if (Main == 0) {
-    cerr << "WARNING: cannot insert basic-block trace instrumentation"
-         << " into a module with no main function!\n";
-    return false;  // No main, no instrumentation!
-  }
-
-  unsigned BBNumber = 0;
-  for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F)
-    for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) {
-      InsertInstrumentationCall (BB, "llvm_trace_basic_block", BBNumber);
-      ++BBNumber;
-    }
-
-  // Add the initialization call to main.
-  InsertProfilingInitCall(Main, "llvm_start_basic_block_tracing");
-  return true;
-}
-