From 7ae9b93a7d8f52dd01682b7c2e6df89f91a0cd29 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1456 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../llvm/Transforms/Instrumentation/TraceValues.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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 -- 2.34.1