Convert to new simpler Pass structure

Componentize better


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@879 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2001-10-18 05:22:27 +00:00
parent 9797a51771
commit a36941c069

View File

@ -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);
}
};