[llvm-commits] CVS: llvm/include/llvm/Analysis/AliasAnalysis.h CallGraph.h Dominators.h FindUsedTypes.h IntervalPartition.h LoopInfo.h LoopPass.h PostDominators.h ProfileInfo.h ScalarEvolution.h ValueNumbering.h
Devang Patel
dpatel at apple.com
Tue May 1 14:17:46 PDT 2007
Changes in directory llvm/include/llvm/Analysis:
AliasAnalysis.h updated: 1.28 -> 1.29
CallGraph.h updated: 1.53 -> 1.54
Dominators.h updated: 1.76 -> 1.77
FindUsedTypes.h updated: 1.29 -> 1.30
IntervalPartition.h updated: 1.23 -> 1.24
LoopInfo.h updated: 1.63 -> 1.64
LoopPass.h updated: 1.15 -> 1.16
PostDominators.h updated: 1.17 -> 1.18
ProfileInfo.h updated: 1.5 -> 1.6
ScalarEvolution.h updated: 1.16 -> 1.17
ValueNumbering.h updated: 1.10 -> 1.11
---
Log message:
Do not use typeinfo to identify pass in pass manager.
---
Diffs of the changes: (+45 -14)
AliasAnalysis.h | 1 +
CallGraph.h | 1 +
Dominators.h | 27 ++++++++++++++++++---------
FindUsedTypes.h | 3 +++
IntervalPartition.h | 4 +++-
LoopInfo.h | 3 +++
LoopPass.h | 3 +++
PostDominators.h | 12 +++++++++---
ProfileInfo.h | 1 +
ScalarEvolution.h | 3 ++-
ValueNumbering.h | 1 +
11 files changed, 45 insertions(+), 14 deletions(-)
Index: llvm/include/llvm/Analysis/AliasAnalysis.h
diff -u llvm/include/llvm/Analysis/AliasAnalysis.h:1.28 llvm/include/llvm/Analysis/AliasAnalysis.h:1.29
--- llvm/include/llvm/Analysis/AliasAnalysis.h:1.28 Sun Feb 11 22:59:57 2007
+++ llvm/include/llvm/Analysis/AliasAnalysis.h Tue May 1 16:15:46 2007
@@ -61,6 +61,7 @@
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
public:
+ static const int ID; // Class identification, replacement for typeinfo
AliasAnalysis() : TD(0), AA(0) {}
virtual ~AliasAnalysis(); // We want to be subclassed
Index: llvm/include/llvm/Analysis/CallGraph.h
diff -u llvm/include/llvm/Analysis/CallGraph.h:1.53 llvm/include/llvm/Analysis/CallGraph.h:1.54
--- llvm/include/llvm/Analysis/CallGraph.h:1.53 Sat Dec 16 23:15:12 2006
+++ llvm/include/llvm/Analysis/CallGraph.h Tue May 1 16:15:46 2007
@@ -73,6 +73,7 @@
FunctionMapTy FunctionMap; // Map from a function to its node
public:
+ static const int ID; // Class identification, replacement for typeinfo
//===---------------------------------------------------------------------
// Accessors...
//
Index: llvm/include/llvm/Analysis/Dominators.h
diff -u llvm/include/llvm/Analysis/Dominators.h:1.76 llvm/include/llvm/Analysis/Dominators.h:1.77
--- llvm/include/llvm/Analysis/Dominators.h:1.76 Sat Apr 21 02:04:45 2007
+++ llvm/include/llvm/Analysis/Dominators.h Tue May 1 16:15:46 2007
@@ -42,9 +42,10 @@
protected:
std::vector<BasicBlock*> Roots;
const bool IsPostDominators;
-
- inline DominatorBase(bool isPostDom) : Roots(), IsPostDominators(isPostDom) {}
+ inline DominatorBase(intptr_t ID, bool isPostDom) :
+ FunctionPass(ID), Roots(), IsPostDominators(isPostDom) {}
public:
+
/// getRoots - Return the root blocks of the current CFG. This may include
/// multiple blocks if we are computing post dominators. For forward
/// dominators, this will always be a single block (the entry node).
@@ -135,7 +136,8 @@
};
public:
- DominatorTreeBase(bool isPostDom) : DominatorBase(isPostDom) {}
+ DominatorTreeBase(intptr_t ID, bool isPostDom)
+ : DominatorBase(ID, isPostDom) {}
~DominatorTreeBase() { reset(); }
virtual void releaseMemory() { reset(); }
@@ -206,7 +208,8 @@
///
class DominatorTree : public DominatorTreeBase {
public:
- DominatorTree() : DominatorTreeBase(false) {}
+ static const int ID; // Pass ID, replacement for typeid
+ DominatorTree() : DominatorTreeBase((intptr_t)&ID, false) {}
BasicBlock *getRoot() const {
assert(Roots.size() == 1 && "Should always have entry node!");
@@ -264,8 +267,9 @@
///
class ETForestBase : public DominatorBase {
public:
- ETForestBase(bool isPostDom) : DominatorBase(isPostDom), Nodes(),
- DFSInfoValid(false), SlowQueries(0) {}
+ ETForestBase(intptr_t ID, bool isPostDom)
+ : DominatorBase(ID, isPostDom), Nodes(),
+ DFSInfoValid(false), SlowQueries(0) {}
virtual void releaseMemory() { reset(); }
@@ -395,7 +399,9 @@
class ETForest : public ETForestBase {
public:
- ETForest() : ETForestBase(false) {}
+ static const int ID; // Pass identifcation, replacement for typeid
+
+ ETForest() : ETForestBase((intptr_t)&ID, false) {}
BasicBlock *getRoot() const {
assert(Roots.size() == 1 && "Should always have entry node!");
@@ -425,7 +431,8 @@
protected:
DomSetMapType Frontiers;
public:
- DominanceFrontierBase(bool isPostDom) : DominatorBase(isPostDom) {}
+ DominanceFrontierBase(intptr_t ID, bool isPostDom)
+ : DominatorBase(ID, isPostDom) {}
virtual void releaseMemory() { Frontiers.clear(); }
@@ -470,7 +477,9 @@
///
class DominanceFrontier : public DominanceFrontierBase {
public:
- DominanceFrontier() : DominanceFrontierBase(false) {}
+ static const int ID; // Pass ID, replacement for typeid
+ DominanceFrontier() :
+ DominanceFrontierBase((intptr_t)& ID, false) {}
BasicBlock *getRoot() const {
assert(Roots.size() == 1 && "Should always have entry node!");
Index: llvm/include/llvm/Analysis/FindUsedTypes.h
diff -u llvm/include/llvm/Analysis/FindUsedTypes.h:1.29 llvm/include/llvm/Analysis/FindUsedTypes.h:1.30
--- llvm/include/llvm/Analysis/FindUsedTypes.h:1.29 Sat Dec 16 23:15:12 2006
+++ llvm/include/llvm/Analysis/FindUsedTypes.h Tue May 1 16:15:46 2007
@@ -24,6 +24,9 @@
class FindUsedTypes : public ModulePass {
std::set<const Type *> UsedTypes;
public:
+ static const int ID; // Pass identifcation, replacement for typeid
+ FindUsedTypes() : ModulePass((intptr_t)&ID) {}
+
/// getTypes - After the pass has been run, return the set containing all of
/// the types used in the module.
///
Index: llvm/include/llvm/Analysis/IntervalPartition.h
diff -u llvm/include/llvm/Analysis/IntervalPartition.h:1.23 llvm/include/llvm/Analysis/IntervalPartition.h:1.24
--- llvm/include/llvm/Analysis/IntervalPartition.h:1.23 Sat Dec 16 23:15:12 2006
+++ llvm/include/llvm/Analysis/IntervalPartition.h Tue May 1 16:15:46 2007
@@ -45,7 +45,9 @@
std::vector<Interval*> Intervals;
public:
- IntervalPartition() : RootInterval(0) {}
+ static const int ID; // Pass identifcation, replacement for typeid
+
+ IntervalPartition() : FunctionPass((intptr_t)&ID), RootInterval(0) {}
// run - Calculate the interval partition for this function
virtual bool runOnFunction(Function &F);
Index: llvm/include/llvm/Analysis/LoopInfo.h
diff -u llvm/include/llvm/Analysis/LoopInfo.h:1.63 llvm/include/llvm/Analysis/LoopInfo.h:1.64
--- llvm/include/llvm/Analysis/LoopInfo.h:1.63 Sat Dec 16 23:15:12 2006
+++ llvm/include/llvm/Analysis/LoopInfo.h Tue May 1 16:15:46 2007
@@ -241,6 +241,9 @@
std::vector<Loop*> TopLevelLoops;
friend class Loop;
public:
+ static const int ID; // Pass identifcation, replacement for typeid
+
+ LoopInfo() : FunctionPass((intptr_t)&ID) {}
~LoopInfo() { releaseMemory(); }
/// iterator/begin/end - The interface to the top-level loops in the current
Index: llvm/include/llvm/Analysis/LoopPass.h
diff -u llvm/include/llvm/Analysis/LoopPass.h:1.15 llvm/include/llvm/Analysis/LoopPass.h:1.16
--- llvm/include/llvm/Analysis/LoopPass.h:1.15 Mon Apr 16 13:51:25 2007
+++ llvm/include/llvm/Analysis/LoopPass.h Tue May 1 16:15:46 2007
@@ -29,6 +29,8 @@
class LoopPass : public Pass {
public:
+ LoopPass(intptr_t pid) : Pass(pid) {}
+
// runOnLoop - THis method should be implemented by the subclass to perform
// whatever action is necessary for the specfied Loop.
virtual bool runOnLoop (Loop *L, LPPassManager &LPM) = 0;
@@ -66,6 +68,7 @@
class LPPassManager : public FunctionPass, public PMDataManager {
public:
+ static const int ID;
LPPassManager(int Depth);
/// run - Execute all of the passes scheduled for execution. Keep track of
Index: llvm/include/llvm/Analysis/PostDominators.h
diff -u llvm/include/llvm/Analysis/PostDominators.h:1.17 llvm/include/llvm/Analysis/PostDominators.h:1.18
--- llvm/include/llvm/Analysis/PostDominators.h:1.17 Sun Apr 15 18:14:18 2007
+++ llvm/include/llvm/Analysis/PostDominators.h Tue May 1 16:15:46 2007
@@ -22,7 +22,10 @@
/// compute the a post-dominator tree.
///
struct PostDominatorTree : public DominatorTreeBase {
- PostDominatorTree() : DominatorTreeBase(true) {}
+ static const int ID; // Pass identifcation, replacement for typeid
+
+ PostDominatorTree() :
+ DominatorTreeBase((intptr_t)&ID, true) {}
virtual bool runOnFunction(Function &F) {
reset(); // Reset from the last time we were run...
@@ -51,7 +54,8 @@
/// PostETForest Class - Concrete subclass of ETForestBase that is used to
/// compute a forwards post-dominator ET-Forest.
struct PostETForest : public ETForestBase {
- PostETForest() : ETForestBase(true) {}
+ static const int ID;
+ PostETForest() : ETForestBase((intptr_t)&ID, true) {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
@@ -75,7 +79,9 @@
/// used to compute the a post-dominance frontier.
///
struct PostDominanceFrontier : public DominanceFrontierBase {
- PostDominanceFrontier() : DominanceFrontierBase(true) {}
+ static const int ID;
+ PostDominanceFrontier()
+ : DominanceFrontierBase((intptr_t) &ID, true) {}
virtual bool runOnFunction(Function &) {
Frontiers.clear();
Index: llvm/include/llvm/Analysis/ProfileInfo.h
diff -u llvm/include/llvm/Analysis/ProfileInfo.h:1.5 llvm/include/llvm/Analysis/ProfileInfo.h:1.6
--- llvm/include/llvm/Analysis/ProfileInfo.h:1.5 Thu Apr 21 15:16:32 2005
+++ llvm/include/llvm/Analysis/ProfileInfo.h Tue May 1 16:15:46 2007
@@ -38,6 +38,7 @@
// entered.
std::map<std::pair<BasicBlock*, BasicBlock*>, unsigned> EdgeCounts;
public:
+ static const int ID; // Class identification, replacement for typeinfo
virtual ~ProfileInfo(); // We want to be subclassed
//===------------------------------------------------------------------===//
Index: llvm/include/llvm/Analysis/ScalarEvolution.h
diff -u llvm/include/llvm/Analysis/ScalarEvolution.h:1.16 llvm/include/llvm/Analysis/ScalarEvolution.h:1.17
--- llvm/include/llvm/Analysis/ScalarEvolution.h:1.16 Sun Mar 4 18:00:41 2007
+++ llvm/include/llvm/Analysis/ScalarEvolution.h Tue May 1 16:15:46 2007
@@ -197,7 +197,8 @@
class ScalarEvolution : public FunctionPass {
void *Impl; // ScalarEvolution uses the pimpl pattern
public:
- ScalarEvolution() : Impl(0) {}
+ static const int ID; // Pass identifcation, replacement for typeid
+ ScalarEvolution() : FunctionPass((intptr_t)&ID), Impl(0) {}
/// getSCEV - Return a SCEV expression handle for the full generality of the
/// specified expression.
Index: llvm/include/llvm/Analysis/ValueNumbering.h
diff -u llvm/include/llvm/Analysis/ValueNumbering.h:1.10 llvm/include/llvm/Analysis/ValueNumbering.h:1.11
--- llvm/include/llvm/Analysis/ValueNumbering.h:1.10 Wed Jun 7 17:00:25 2006
+++ llvm/include/llvm/Analysis/ValueNumbering.h Tue May 1 16:15:46 2007
@@ -29,6 +29,7 @@
class Instruction;
struct ValueNumbering {
+ static const int ID; // Class identification, replacement for typeinfo
virtual ~ValueNumbering(); // We want to be subclassed
/// getEqualNumberNodes - Return nodes with the same value number as the
More information about the llvm-commits
mailing list