diff options
Diffstat (limited to 'lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp')
-rw-r--r-- | lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp b/lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp index a74d5c75b1..1c0ec3b9ae 100644 --- a/lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp +++ b/lib/Transforms/Instrumentation/ProfilePaths/InstLoops.cpp @@ -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 < = 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)); |