diff options
author | Chris Lattner <sabre@nondot.org> | 2001-10-18 20:19:09 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-10-18 20:19:09 +0000 |
commit | 986fced5f9b3ef06f514cba66db499acffdc9711 (patch) | |
tree | 8fa2100224cf78ba4f631482abc6ade7d6be448a /include/llvm/Transforms | |
parent | 9effd69ca2fe4d20b8a0dcbf4f9d5d4a402c536d (diff) | |
download | external_llvm-986fced5f9b3ef06f514cba66db499acffdc9711.zip external_llvm-986fced5f9b3ef06f514cba66db499acffdc9711.tar.gz external_llvm-986fced5f9b3ef06f514cba66db499acffdc9711.tar.bz2 |
move llvm/Transforms/Pass.h to the top level llvm/Pass.h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@901 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r-- | include/llvm/Transforms/ChangeAllocations.h | 2 | ||||
-rw-r--r-- | include/llvm/Transforms/FunctionInlining.h | 2 | ||||
-rw-r--r-- | include/llvm/Transforms/HoistPHIConstants.h | 5 | ||||
-rw-r--r-- | include/llvm/Transforms/IPO/ConstantMerge.h | 2 | ||||
-rw-r--r-- | include/llvm/Transforms/Instrumentation/TraceValues.h | 26 | ||||
-rw-r--r-- | include/llvm/Transforms/Pass.h | 126 | ||||
-rw-r--r-- | include/llvm/Transforms/PrintModulePass.h | 3 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar/ConstantProp.h | 2 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar/DCE.h | 2 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar/InductionVars.h | 3 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar/SymbolStripping.h | 4 |
11 files changed, 20 insertions, 157 deletions
diff --git a/include/llvm/Transforms/ChangeAllocations.h b/include/llvm/Transforms/ChangeAllocations.h index 46efa26..8f53051 100644 --- a/include/llvm/Transforms/ChangeAllocations.h +++ b/include/llvm/Transforms/ChangeAllocations.h @@ -10,7 +10,7 @@ #ifndef LLVM_TRANSFORMS_LOWERALLOCATIONS_H #define LLVM_TRANSFORMS_LOWERALLOCATIONS_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" class TargetData; class LowerAllocations : public Pass { diff --git a/include/llvm/Transforms/FunctionInlining.h b/include/llvm/Transforms/FunctionInlining.h index 373708d..520cc7f 100644 --- a/include/llvm/Transforms/FunctionInlining.h +++ b/include/llvm/Transforms/FunctionInlining.h @@ -7,7 +7,7 @@ #ifndef LLVM_OPT_METHOD_INLINING_H #define LLVM_OPT_METHOD_INLINING_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" #include "llvm/BasicBlock.h" class CallInst; diff --git a/include/llvm/Transforms/HoistPHIConstants.h b/include/llvm/Transforms/HoistPHIConstants.h index 931269b..65bae75 100644 --- a/include/llvm/Transforms/HoistPHIConstants.h +++ b/include/llvm/Transforms/HoistPHIConstants.h @@ -9,12 +9,13 @@ #ifndef LLVM_TRANSFORMS_HOISTPHICONSTANTS_H #define LLVM_TRANSFORMS_HOISTPHICONSTANTS_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" struct HoistPHIConstants : public Pass { + // doHoistPHIConstants - Hoist constants out of PHI instructions + // static bool doHoistPHIConstants(Method *M); - virtual bool doPerMethodWork(Method *M) { return doHoistPHIConstants(M); } }; diff --git a/include/llvm/Transforms/IPO/ConstantMerge.h b/include/llvm/Transforms/IPO/ConstantMerge.h index e98e375..4ebbfd3 100644 --- a/include/llvm/Transforms/IPO/ConstantMerge.h +++ b/include/llvm/Transforms/IPO/ConstantMerge.h @@ -17,7 +17,7 @@ #ifndef LLVM_TRANSFORMS_CONSTANTMERGE_H #define LLVM_TRANSFORMS_CONSTANTMERGE_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" #include <map> class ConstPoolVal; class GlobalVariable; diff --git a/include/llvm/Transforms/Instrumentation/TraceValues.h b/include/llvm/Transforms/Instrumentation/TraceValues.h index 4f9201b..d4e2edd 100644 --- a/include/llvm/Transforms/Instrumentation/TraceValues.h +++ b/include/llvm/Transforms/Instrumentation/TraceValues.h @@ -1,21 +1,14 @@ -// $Id$ -*-c++-*- -//*************************************************************************** -// File: -// TraceValues.h -// -// Purpose: -// Support for inserting LLVM code to print values at basic block -// and method exits. Also exports functions to create a call -// "printf" instruction with one of the signatures listed below. -// -// History: -// 10/11/01 - Vikram Adve - Created -//**************************************************************************/ +//===- llvm/Transforms/Instrumentation/TraceValues.h - Tracing ---*- C++ -*--=// +// +// Support for inserting LLVM code to print values at basic block and method +// exits. +// +//===----------------------------------------------------------------------===// #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_TRACEVALUES_H #define LLVM_TRANSFORMS_INSTRUMENTATION_TRACEVALUES_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" class InsertTraceCode : public Pass { bool TraceBasicBlockExits, TraceMethodExits; @@ -30,13 +23,10 @@ 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); - - // doPerMethodWork - This method does the work. Always successful. // bool doPerMethodWork(Method *M) { diff --git a/include/llvm/Transforms/Pass.h b/include/llvm/Transforms/Pass.h deleted file mode 100644 index 259a432..0000000 --- a/include/llvm/Transforms/Pass.h +++ /dev/null @@ -1,126 +0,0 @@ -//===- llvm/Transforms/Pass.h - Base class for XForm Passes ------*- C++ -*--=// -// -// This file defines a marker class that indicates that a specified class is a -// transformation pass implementation. -// -// Pass's are designed this way so that it is possible to apply N passes to a -// module, by first doing N Pass specific initializations for the module, then -// looping over all of the methods in the module, doing method specific work -// N times for each method. Like this: -// -// for_each(Passes.begin(), Passes.end(), doPassInitialization(Module)); -// for_each(Method *M <- Module->begin(), Module->end()) -// for_each(Passes.begin(), Passes.end(), doPerMethodWork(M)); -// -// The other way to do things is like this: -// for_each(Pass *P <- Passes.begin(), Passes.end()) { -// Passes->doPassInitialization(Module) -// for_each(Module->begin(), Module->end(), P->doPerMethodWork); -// } -// -// But this can cause thrashing and poor cache performance, so we don't do it -// that way. -// -// Because a transformation does not see all methods consecutively, it should -// be careful about the state that it maintains... another pass may modify a -// method between two invocatations of doPerMethodWork. -// -// Also, implementations of doMethodWork should not remove any methods from the -// module. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TRANSFORMS_PASS_H -#define LLVM_TRANSFORMS_PASS_H - -#include "llvm/Module.h" -#include "llvm/Method.h" - -//===----------------------------------------------------------------------===// -// Pass interface - Implemented by all 'passes'. -// -struct Pass { - //===--------------------------------------------------------------------===// - // The externally useful entry points - // - - // runAllPasses - Run a bunch of passes on the specified module, efficiently. - static bool runAllPasses(Module *M, vector<Pass*> &Passes) { - bool MadeChanges = false; - // Run all of the pass initializers - for (unsigned i = 0; i < Passes.size(); ++i) - MadeChanges |= Passes[i]->doPassInitialization(M); - - // Loop over all of the methods, applying all of the passes to them - for (unsigned m = 0; m < M->size(); ++m) - for (unsigned i = 0; i < Passes.size(); ++i) - MadeChanges |= Passes[i]->doPerMethodWork(*(M->begin()+m)); - - // Run all of the pass finalizers... - for (unsigned i = 0; i < Passes.size(); ++i) - MadeChanges |= Passes[i]->doPassFinalization(M); - return MadeChanges; - } - - // runAllPassesAndFree - Run a bunch of passes on the specified module, - // efficiently. When done, delete all of the passes. - // - static bool runAllPassesAndFree(Module *M, vector<Pass*> &Passes) { - // First run all of the passes - bool MadeChanges = runAllPasses(M, Passes); - - // Free all of the passes. - for (unsigned i = 0; i < Passes.size(); ++i) - delete Passes[i]; - return MadeChanges; - } - - - // run(Module*) - Run this pass on a module and all of the methods contained - // within it. Returns true if any of the contained passes returned true. - // - bool run(Module *M) { - bool MadeChanges = doPassInitialization(M); - - // Loop over methods in the module. doPerMethodWork could add a method to - // the Module, so we have to keep checking for end of method list condition. - // - for (unsigned m = 0; m < M->size(); ++m) - MadeChanges |= doPerMethodWork(*(M->begin()+m)); - return MadeChanges | doPassFinalization(M); - } - - // run(Method*) - Run this pass on a module and one specific method. Returns - // false on success. - // - bool run(Method *M) { - return doPassInitialization(M->getParent()) | doPerMethodWork(M) | - doPassFinalization(M->getParent()); - } - - - //===--------------------------------------------------------------------===// - // Functions to be implemented by subclasses - // - - // Destructor - Virtual so we can be subclassed - inline virtual ~Pass() {} - - // doPassInitialization - Virtual method overridden by subclasses to do - // any neccesary per-module initialization. - // - virtual bool doPassInitialization(Module *M) { return false; } - - // doPerMethodWork - Virtual method overriden by subclasses to do the - // per-method processing of the pass. - // - virtual bool doPerMethodWork(Method *M) { return false; } - - // doPassFinalization - Virtual method overriden by subclasses to do any post - // processing needed after all passes have run. - // - virtual bool doPassFinalization(Module *M) { return false; } -}; - -#endif - diff --git a/include/llvm/Transforms/PrintModulePass.h b/include/llvm/Transforms/PrintModulePass.h index 142c2b0..a7a4412 100644 --- a/include/llvm/Transforms/PrintModulePass.h +++ b/include/llvm/Transforms/PrintModulePass.h @@ -8,7 +8,7 @@ #ifndef LLVM_TRANSFORMS_PRINTMODULE_H #define LLVM_TRANSFORMS_PRINTMODULE_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" #include "llvm/Assembly/Writer.h" #include "llvm/Bytecode/Writer.h" @@ -61,6 +61,7 @@ public: bool doPassFinalization(Module *M) { WriteBytecodeToFile(M, *Out); + return false; } }; diff --git a/include/llvm/Transforms/Scalar/ConstantProp.h b/include/llvm/Transforms/Scalar/ConstantProp.h index 918ef07..f094ec5 100644 --- a/include/llvm/Transforms/Scalar/ConstantProp.h +++ b/include/llvm/Transforms/Scalar/ConstantProp.h @@ -7,7 +7,7 @@ #ifndef LLVM_OPT_CONSTANT_PROPOGATION_H #define LLVM_OPT_CONSTANT_PROPOGATION_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" class TerminatorInst; namespace opt { diff --git a/include/llvm/Transforms/Scalar/DCE.h b/include/llvm/Transforms/Scalar/DCE.h index 9a7bd6e..e7a07ec 100644 --- a/include/llvm/Transforms/Scalar/DCE.h +++ b/include/llvm/Transforms/Scalar/DCE.h @@ -8,7 +8,7 @@ #ifndef LLVM_OPT_DCE_H #define LLVM_OPT_DCE_H -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" namespace opt { diff --git a/include/llvm/Transforms/Scalar/InductionVars.h b/include/llvm/Transforms/Scalar/InductionVars.h index e0c46d8..82ec9fc 100644 --- a/include/llvm/Transforms/Scalar/InductionVars.h +++ b/include/llvm/Transforms/Scalar/InductionVars.h @@ -8,8 +8,7 @@ #ifndef LLVM_OPT_INDUCTION_VARS_H #define LLVM_OPT_INDUCTION_VARS_H -#include "llvm/Transforms/Pass.h" -#include "llvm/Module.h" +#include "llvm/Pass.h" namespace opt { diff --git a/include/llvm/Transforms/Scalar/SymbolStripping.h b/include/llvm/Transforms/Scalar/SymbolStripping.h index a5540f9..1feb438 100644 --- a/include/llvm/Transforms/Scalar/SymbolStripping.h +++ b/include/llvm/Transforms/Scalar/SymbolStripping.h @@ -8,9 +8,7 @@ #ifndef LLVM_OPT_SYMBOL_STRIPPING_H #define LLVM_OPT_SYMBOL_STRIPPING_H -class Method; -class Module; -#include "llvm/Transforms/Pass.h" +#include "llvm/Pass.h" namespace opt { |