From: Chris Lattner Date: Fri, 14 Dec 2001 16:23:53 +0000 (+0000) Subject: Refactor trace values to work as a proper pass. Before it used to add X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=7ae9b93a7d8f52dd01682b7c2e6df89f91a0cd29;p=oota-llvm.git Refactor trace values to work as a proper pass. Before it used to add methods while the pass was running which was a no no. Now it adds the printf method at pass initialization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1456 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Transforms/Instrumentation/TraceValues.h b/include/llvm/Transforms/Instrumentation/TraceValues.h index d4e2edd5ddd..13847161f10 100644 --- a/include/llvm/Transforms/Instrumentation/TraceValues.h +++ b/include/llvm/Transforms/Instrumentation/TraceValues.h @@ -9,14 +9,19 @@ #define LLVM_TRANSFORMS_INSTRUMENTATION_TRACEVALUES_H #include "llvm/Pass.h" +class Method; class InsertTraceCode : public Pass { bool TraceBasicBlockExits, TraceMethodExits; + Method *PrintfMeth; public: InsertTraceCode(bool traceBasicBlockExits, bool traceMethodExits) : TraceBasicBlockExits(traceBasicBlockExits), TraceMethodExits(traceMethodExits) {} + // Add a prototype for printf if it is not already in the program. + // + bool doPassInitialization(Module *M); //-------------------------------------------------------------------------- // Function InsertCodeToTraceValues @@ -24,14 +29,14 @@ public: // Inserts tracing code for all live values at basic block and/or method exits // as specified by `traceBasicBlockExits' and `traceMethodExits'. // - static bool doInsertTraceCode(Method *M, bool traceBasicBlockExits, - bool traceMethodExits); + static bool doit(Method *M, bool traceBasicBlockExits, + bool traceMethodExits, Method *Printf); // doPerMethodWork - This method does the work. Always successful. // bool doPerMethodWork(Method *M) { - return doInsertTraceCode(M, TraceBasicBlockExits, TraceMethodExits); + return doit(M, TraceBasicBlockExits, TraceMethodExits, PrintfMeth); } }; -#endif /*LLVM_TRANSFORMS_INSTRUMENTATION_TRACEVALUES_H*/ +#endif