diff options
-rw-r--r-- | lib/Transforms/Instrumentation/ProfilingUtils.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/Instrumentation/RSProfiling.cpp | 2 | ||||
-rw-r--r-- | lib/Transforms/Instrumentation/TraceBasicBlocks.cpp | 11 | ||||
-rw-r--r-- | lib/Transforms/Instrumentation/TraceValues.cpp | 26 |
4 files changed, 20 insertions, 21 deletions
diff --git a/lib/Transforms/Instrumentation/ProfilingUtils.cpp b/lib/Transforms/Instrumentation/ProfilingUtils.cpp index 1df7001488..d003f6ca91 100644 --- a/lib/Transforms/Instrumentation/ProfilingUtils.cpp +++ b/lib/Transforms/Instrumentation/ProfilingUtils.cpp @@ -25,7 +25,7 @@ void llvm::InsertProfilingInitCall(Function *MainFn, const char *FnName, const Type *ArgVTy = PointerType::get(PointerType::get(Type::Int8Ty)); const PointerType *UIntPtr = PointerType::get(Type::Int32Ty); Module &M = *MainFn->getParent(); - Function *InitFn = M.getOrInsertFunction(FnName, Type::Int32Ty, Type::Int32Ty, + Constant *InitFn = M.getOrInsertFunction(FnName, Type::Int32Ty, Type::Int32Ty, ArgVTy, UIntPtr, Type::Int32Ty, (Type *)0); diff --git a/lib/Transforms/Instrumentation/RSProfiling.cpp b/lib/Transforms/Instrumentation/RSProfiling.cpp index 1553141cec..e70a2cbbe0 100644 --- a/lib/Transforms/Instrumentation/RSProfiling.cpp +++ b/lib/Transforms/Instrumentation/RSProfiling.cpp @@ -127,7 +127,7 @@ namespace { //deciding when to sample. class CycleCounter : public Chooser { uint64_t rm; - Function* F; + Constant *F; public: CycleCounter(Module& m, uint64_t resetmask); virtual ~CycleCounter(); diff --git a/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp b/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp index 379005359d..68e0d282cc 100644 --- a/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp +++ b/lib/Transforms/Instrumentation/TraceBasicBlocks.cpp @@ -45,17 +45,16 @@ static void InsertInstrumentationCall (BasicBlock *BB, DOUT << "InsertInstrumentationCall (\"" << BB->getName () << "\", \"" << FnName << "\", " << BBNumber << ")\n"; Module &M = *BB->getParent ()->getParent (); - Function *InstrFn = M.getOrInsertFunction (FnName, Type::VoidTy, + Constant *InstrFn = M.getOrInsertFunction (FnName, Type::VoidTy, Type::Int32Ty, (Type *)0); - std::vector<Value*> Args (1); - Args[0] = ConstantInt::get (Type::Int32Ty, BBNumber); - - // Insert the call after any alloca or PHI instructions... + + // 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, Args, "", InsertPos); + new CallInst(InstrFn, ConstantInt::get (Type::Int32Ty, BBNumber), + "", InsertPos); } bool TraceBasicBlocks::runOnModule(Module &M) { diff --git a/lib/Transforms/Instrumentation/TraceValues.cpp b/lib/Transforms/Instrumentation/TraceValues.cpp index 9fbec118c2..c3fbef2aad 100644 --- a/lib/Transforms/Instrumentation/TraceValues.cpp +++ b/lib/Transforms/Instrumentation/TraceValues.cpp @@ -36,7 +36,7 @@ TraceFuncNames("tracefunc", cl::desc("Only trace specific functions in the " cl::value_desc("function"), cl::Hidden); static void TraceValuesAtBBExit(BasicBlock *BB, - Function *Printf, Function* HashPtrToSeqNum, + Constant *Printf, Constant* HashPtrToSeqNum, std::vector<Instruction*> *valuesStoredInFunction); // We trace a particular function if no functions to trace were specified @@ -54,8 +54,8 @@ TraceThisFunction(Function &F) namespace { struct ExternalFuncs { - Function *PrintfFunc, *HashPtrFunc, *ReleasePtrFunc; - Function *RecordPtrFunc, *PushOnEntryFunc, *ReleaseOnReturnFunc; + Constant *PrintfFunc, *HashPtrFunc, *ReleasePtrFunc; + Constant *RecordPtrFunc, *PushOnEntryFunc, *ReleaseOnReturnFunc; void doInitialization(Module &M); // Add prototypes for external functions }; @@ -224,7 +224,7 @@ static std::string getPrintfCodeFor(const Value *V) { static void InsertPrintInst(Value *V, BasicBlock *BB, Instruction *InsertBefore, std::string Message, - Function *Printf, Function* HashPtrToSeqNum) { + Constant *Printf, Constant* HashPtrToSeqNum) { // Escape Message by replacing all % characters with %% chars. std::string Tmp; std::swap(Tmp, Message); @@ -266,8 +266,8 @@ static void InsertPrintInst(Value *V, BasicBlock *BB, Instruction *InsertBefore, static void InsertVerbosePrintInst(Value *V, BasicBlock *BB, Instruction *InsertBefore, - const std::string &Message, Function *Printf, - Function* HashPtrToSeqNum) { + const std::string &Message, Constant *Printf, + Constant * HashPtrToSeqNum) { std::ostringstream OutStr; if (V) WriteAsOperand(OutStr, V); InsertPrintInst(V, BB, InsertBefore, Message+OutStr.str()+" = ", @@ -277,7 +277,7 @@ static void InsertVerbosePrintInst(Value *V, BasicBlock *BB, static void InsertReleaseInst(Value *V, BasicBlock *BB, Instruction *InsertBefore, - Function* ReleasePtrFunc) { + Constant *ReleasePtrFunc) { const Type *SBP = PointerType::get(Type::Int8Ty); if (V->getType() != SBP) // Cast pointer to be sbyte* @@ -290,7 +290,7 @@ InsertReleaseInst(Value *V, BasicBlock *BB, static void InsertRecordInst(Value *V, BasicBlock *BB, Instruction *InsertBefore, - Function* RecordPtrFunc) { + Constant *RecordPtrFunc) { const Type *SBP = PointerType::get(Type::Int8Ty); if (V->getType() != SBP) // Cast pointer to be sbyte* V = new BitCastInst(V, SBP, "RP_cast", InsertBefore); @@ -325,7 +325,7 @@ ReleasePtrSeqNumbers(BasicBlock *BB, // store instruction). // static void TraceValuesAtBBExit(BasicBlock *BB, - Function *Printf, Function* HashPtrToSeqNum, + Constant *Printf, Constant * HashPtrToSeqNum, std::vector<Instruction*> *valuesStoredInFunction) { // Get an iterator to point to the insertion location, which is // just before the terminator instruction. @@ -354,8 +354,8 @@ static void TraceValuesAtBBExit(BasicBlock *BB, } } -static inline void InsertCodeToShowFunctionEntry(Function &F, Function *Printf, - Function* HashPtrToSeqNum){ +static inline void InsertCodeToShowFunctionEntry(Function &F, Constant *Printf, + Constant * HashPtrToSeqNum){ // Get an iterator to point to the insertion location BasicBlock &BB = F.getEntryBlock(); Instruction *InsertPos = BB.begin(); @@ -376,8 +376,8 @@ static inline void InsertCodeToShowFunctionEntry(Function &F, Function *Printf, static inline void InsertCodeToShowFunctionExit(BasicBlock *BB, - Function *Printf, - Function* HashPtrToSeqNum) { + Constant *Printf, + Constant * HashPtrToSeqNum) { // Get an iterator to point to the insertion location ReturnInst *Ret = cast<ReturnInst>(BB->getTerminator()); |