projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK
[oota-llvm.git]
/
include
/
llvm
/
Pass.h
diff --git
a/include/llvm/Pass.h
b/include/llvm/Pass.h
index 1ab6ff9a720c88fe13a8a296be3420243e399968..b5c9f8d8acf28aa8bfd61b11194df29a73582314 100644
(file)
--- a/
include/llvm/Pass.h
+++ b/
include/llvm/Pass.h
@@
-34,7
+34,6
@@
#include <deque>
#include <map>
#include <iosfwd>
#include <deque>
#include <map>
#include <iosfwd>
-#include <typeinfo>
#include <cassert>
namespace llvm {
#include <cassert>
namespace llvm {
@@
-77,7
+76,7
@@
typedef enum PassManagerType PassManagerType;
///
class Pass {
AnalysisResolver *Resolver; // Used to resolve analysis
///
class Pass {
AnalysisResolver *Resolver; // Used to resolve analysis
-
const PassInfo *PassInfoCache
;
+
intptr_t PassID
;
// AnalysisImpls - This keeps track of which passes implement the interfaces
// that are required by the current pass (to implement getAnalysis()).
// AnalysisImpls - This keeps track of which passes implement the interfaces
// that are required by the current pass (to implement getAnalysis()).
@@
-87,7
+86,7
@@
class Pass {
void operator=(const Pass&); // DO NOT IMPLEMENT
Pass(const Pass &); // DO NOT IMPLEMENT
public:
void operator=(const Pass&); // DO NOT IMPLEMENT
Pass(const Pass &); // DO NOT IMPLEMENT
public:
- Pass(
) : Resolver(0), PassInfoCache(0
) {}
+ Pass(
intptr_t pid) : Resolver(0), PassID(pid
) {}
virtual ~Pass();
/// getPassName - Return a nice clean name for a pass. This usually
virtual ~Pass();
/// getPassName - Return a nice clean name for a pass. This usually
@@
-163,12
+162,12
@@
public:
template<typename AnalysisClass>
static const PassInfo *getClassPassInfo() {
template<typename AnalysisClass>
static const PassInfo *getClassPassInfo() {
- return lookupPassInfo(
typeid(AnalysisClass)
);
+ return lookupPassInfo(
(intptr_t)&AnalysisClass::ID
);
}
// lookupPassInfo - Return the pass info object for the specified pass class,
// or null if it is not known.
}
// lookupPassInfo - Return the pass info object for the specified pass class,
// or null if it is not known.
- static const PassInfo *lookupPassInfo(
const std::type_info &
TI);
+ static const PassInfo *lookupPassInfo(
intptr_t
TI);
/// getAnalysisToUpdate<AnalysisType>() - This function is used by subclasses
/// to get to the analysis information that might be around that needs to be
/// getAnalysisToUpdate<AnalysisType>() - This function is used by subclasses
/// to get to the analysis information that might be around that needs to be
@@
-232,6
+231,7
@@
public:
return PMT_ModulePassManager;
}
return PMT_ModulePassManager;
}
+ ModulePass(intptr_t pid) : Pass(pid) {}
// Force out-of-line virtual method.
virtual ~ModulePass();
};
// Force out-of-line virtual method.
virtual ~ModulePass();
};
@@
-256,6
+256,7
@@
public:
///
virtual bool runOnModule(Module &M) { return false; }
///
virtual bool runOnModule(Module &M) { return false; }
+ ImmutablePass(intptr_t pid) : ModulePass(pid) {}
// Force out-of-line virtual method.
virtual ~ImmutablePass();
};
// Force out-of-line virtual method.
virtual ~ImmutablePass();
};
@@
-271,6
+272,8
@@
public:
///
class FunctionPass : public Pass {
public:
///
class FunctionPass : public Pass {
public:
+ FunctionPass(intptr_t pid) : Pass(pid) {}
+
/// doInitialization - Virtual method overridden by subclasses to do
/// any necessary per-module initialization.
///
/// doInitialization - Virtual method overridden by subclasses to do
/// any necessary per-module initialization.
///
@@
-320,6
+323,8
@@
public:
///
class BasicBlockPass : public Pass {
public:
///
class BasicBlockPass : public Pass {
public:
+ BasicBlockPass(intptr_t pid) : Pass(pid) {}
+
/// doInitialization - Virtual method overridden by subclasses to do
/// any necessary per-module initialization.
///
/// doInitialization - Virtual method overridden by subclasses to do
/// any necessary per-module initialization.
///