aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-10-18 20:19:09 +0000
committerChris Lattner <sabre@nondot.org>2001-10-18 20:19:09 +0000
commit986fced5f9b3ef06f514cba66db499acffdc9711 (patch)
tree8fa2100224cf78ba4f631482abc6ade7d6be448a /include/llvm/Transforms
parent9effd69ca2fe4d20b8a0dcbf4f9d5d4a402c536d (diff)
downloadexternal_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.h2
-rw-r--r--include/llvm/Transforms/FunctionInlining.h2
-rw-r--r--include/llvm/Transforms/HoistPHIConstants.h5
-rw-r--r--include/llvm/Transforms/IPO/ConstantMerge.h2
-rw-r--r--include/llvm/Transforms/Instrumentation/TraceValues.h26
-rw-r--r--include/llvm/Transforms/Pass.h126
-rw-r--r--include/llvm/Transforms/PrintModulePass.h3
-rw-r--r--include/llvm/Transforms/Scalar/ConstantProp.h2
-rw-r--r--include/llvm/Transforms/Scalar/DCE.h2
-rw-r--r--include/llvm/Transforms/Scalar/InductionVars.h3
-rw-r--r--include/llvm/Transforms/Scalar/SymbolStripping.h4
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 {