From fb742a58eedf1eb22735d411c604db68bac2466b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 18 Oct 2001 05:22:27 +0000 Subject: [PATCH] Convert to new simpler Pass structure Componentize better llvm-svn: 879 --- .../Transforms/Instrumentation/TraceValues.h | 73 ++++--------------- 1 file changed, 16 insertions(+), 57 deletions(-) diff --git a/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h b/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h index cf27a344cedf..4f9201b5e8ed 100644 --- a/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h +++ b/llvm/include/llvm/Transforms/Instrumentation/TraceValues.h @@ -17,71 +17,30 @@ #include "llvm/Transforms/Pass.h" -class Instruction; -class Value; -class Type; - - -//************************** External Functions ****************************/ - - -//-------------------------------------------------------------------------- -// Function GetPrintMethodForType -// -// Creates an external declaration for "printf". -// The signatures supported are: -// int printf(sbyte*, sbyte*, sbyte*, sbyte*, int intValue) -// int printf(sbyte*, sbyte*, sbyte*, sbyte*, unsigned uintValue) -// int printf(sbyte*, sbyte*, sbyte*, sbyte*, float floatValue) -// int printf(sbyte*, sbyte*, sbyte*, sbyte*, double doubleValue) -// int printf(sbyte*, sbyte*, sbyte*, sbyte*, char* stringValue) -// int printf(sbyte*, sbyte*, sbyte*, sbyte*, void* ptrValue) -// -// The invocation should be: -// call "printf"(fmt, bbName, valueName, valueType, value). -//-------------------------------------------------------------------------- - -const Method* GetPrintMethodForType (Module* module, - Type* vtype); - - -//-------------------------------------------------------------------------- -// Function CreatePrintInstr -// -// Creates an invocation of printf for the value `val' at the exit of the -// basic block `bb'. isMethodExit specifies if this is a method exit, -//-------------------------------------------------------------------------- - -Instruction* CreatePrintInstr (Value* val, - const BasicBlock* bb, - Module* module, - unsigned int indent, - bool isMethodExit); - -//-------------------------------------------------------------------------- -// Function InsertCodeToTraceValues -// -// Inserts tracing code for all live values at basic block and/or method exits -// as specified by `traceBasicBlockExits' and `traceMethodExits'. -//-------------------------------------------------------------------------- - -void InsertCodeToTraceValues (Method* method, - bool traceBasicBlockExits, - bool traceMethodExits); - - -class InsertTraceCode : public ConcretePass { +class InsertTraceCode : public Pass { bool TraceBasicBlockExits, TraceMethodExits; public: InsertTraceCode(bool traceBasicBlockExits, bool traceMethodExits) : TraceBasicBlockExits(traceBasicBlockExits), TraceMethodExits(traceMethodExits) {} + + //-------------------------------------------------------------------------- + // Function InsertCodeToTraceValues + // + // 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); + + + // doPerMethodWork - This method does the work. Always successful. // - bool doPerMethodWorkVirt(Method *M) { - InsertCodeToTraceValues(M, TraceBasicBlockExits, TraceMethodExits); - return false; + bool doPerMethodWork(Method *M) { + return doInsertTraceCode(M, TraceBasicBlockExits, TraceMethodExits); } };