Use the new interface, simplifies code
authorChris Lattner <sabre@nondot.org>
Sun, 31 Aug 2003 00:21:59 +0000 (00:21 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 31 Aug 2003 00:21:59 +0000 (00:21 +0000)
NOTE that these two files are _BUGGY_ and need to be fixed, just not by me  :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8241 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp
lib/Transforms/Instrumentation/ProfilePaths/ProfilePaths.cpp

index a74d5c75b1eb44a071f8c0e12828c690dd4aa843..1c0ec3b9ae431bbf0b22ee4499393084502e2e0b 100644 (file)
@@ -121,6 +121,12 @@ void InstLoops::findAndInstrumentBackEdges(Function &F){
 
   removeRedundant(be);
 
+  // FIXME: THIS IS HORRIBLY BROKEN.  FunctionPass's cannot do this, except in
+  // their initialize function!!
+  Function *inCountMth = 
+    F.getParent()->getOrInsertFunction("llvm_first_trigger",
+                                       Type::VoidTy, 0);
+
   for(std::map<BasicBlock *, BasicBlock *>::iterator MI = be.begin(),
        ME = be.end(); MI != ME; ++MI){
     BasicBlock *u = MI->first;
@@ -138,15 +144,6 @@ void InstLoops::findAndInstrumentBackEdges(Function &F){
         
     BasicBlock::InstListType &lt = newBB->getInstList();
 
-    std::vector<const Type*> inCountArgs;
-    const FunctionType *cFty = FunctionType::get(Type::VoidTy, inCountArgs, 
-                                                false);
-    Function *inCountMth = 
-      u->getParent()->getParent()->getOrInsertFunction("llvm_first_trigger",
-                                                      cFty);
-        
-    assert(inCountMth && "Initial method could not be inserted!");
-
     Instruction *call = new CallInst(inCountMth);
     lt.push_back(call);
     lt.push_back(new BranchInst(BB));
index c8741470b384c8a83779dbecfa0c5da84c7d1c33..96150142e3c7f6683618e83252bb5ec5f97c128c 100644 (file)
@@ -176,18 +176,16 @@ bool ProfilePaths::runOnFunction(Function &F){
 
   if(fr->getParent()->getName() == "main"){
     //intialize threshold
-    vector<const Type*> initialize_args;
-    initialize_args.push_back(PointerType::get(Type::IntTy));
-    
-    const FunctionType *Fty = FunctionType::get(Type::VoidTy, initialize_args,
-                                                false);
-    Function *initialMeth = fr->getParent()->getParent()->getOrInsertFunction("reoptimizerInitialize", Fty);
-    assert(initialMeth && "Initialize method could not be inserted!");
+
+    // FIXME: THIS IS HORRIBLY BROKEN.  FUNCTION PASSES CANNOT DO THIS, EXCEPT
+    // IN THEIR INITIALIZE METHOD!!
+    Function *initialize =
+      F.getParent()->getOrInsertFunction("reoptimizerInitialize", Type::VoidTy,
+                                         PointerType::get(Type::IntTy), 0);
     
     vector<Value *> trargs;
     trargs.push_back(threshold);
-  
-    new CallInst(initialMeth, trargs, "", fr->begin());
+    new CallInst(initialize, trargs, "", fr->begin());
   }