From 7c84dc6abbd18fbdcf57050fa1903bd9a0e0468b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 14 Dec 2001 16:23:53 +0000 Subject: [PATCH] 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 llvm-svn: 1456 --- .../llvm/Transforms/Instrumentation/TraceValues.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h b/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h index d4e2edd5ddd3..13847161f10f 100644 --- a/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h +++ b/llvm/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