diff options
author | Chris Lattner <sabre@nondot.org> | 2001-12-14 16:23:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-12-14 16:23:53 +0000 |
commit | 7ae9b93a7d8f52dd01682b7c2e6df89f91a0cd29 (patch) | |
tree | bf331c95014ab9587631171e93519e055b0d8da1 | |
parent | a1c7df8286b2949c12867462c0af546659402e86 (diff) |
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
-rw-r--r-- | include/llvm/Transforms/Instrumentation/TraceValues.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/include/llvm/Transforms/Instrumentation/TraceValues.h b/include/llvm/Transforms/Instrumentation/TraceValues.h index d4e2edd5dd..13847161f1 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 |