The following build error is occurring.

Lauro

make[2]: Entering directory
`/armel-chroot/home/laurov/test/build/llvm/lib/Analysis'
llvm[2]: Compiling AliasAnalysis.cpp for Release build
AliasAnalysis.cpp:37: error: definition of 'llvm::AliasAnalysis::ID' is not
in namespace enclosing 'llvm::AliasAnalysis'
make[2]: ***
[/armel-chroot/home/laurov/test/build/llvm/lib/Analysis/Release/AliasAnalysis.o]
Error 1
make[2]: Leaving directory
`/armel-chroot/home/laurov/test/build/llvm/lib/Analysis'
make[1]: *** [Analysis/.makeall] Error 2

2007/5/1, Devang Patel <[EMAIL PROTECTED]>:



Changes in directory llvm/lib/Analysis:

AliasAnalysis.cpp updated: 1.30 -> 1.31
AliasAnalysisCounter.cpp updated: 1.20 -> 1.21
AliasAnalysisEvaluator.cpp updated: 1.33 -> 1.34
AliasDebugger.cpp updated: 1.3 -> 1.4
AliasSetTracker.cpp updated: 1.46 -> 1.47
BasicAliasAnalysis.cpp updated: 1.108 -> 1.109
CFGPrinter.cpp updated: 1.22 -> 1.23
InstCount.cpp updated: 1.20 -> 1.21
IntervalPartition.cpp updated: 1.32 -> 1.33
LoadValueNumbering.cpp updated: 1.39 -> 1.40
LoopInfo.cpp updated: 1.83 -> 1.84
LoopPass.cpp updated: 1.18 -> 1.19
PostDominators.cpp updated: 1.67 -> 1.68
ProfileInfo.cpp updated: 1.11 -> 1.12
ProfileInfoLoaderPass.cpp updated: 1.18 -> 1.19
ScalarEvolution.cpp updated: 1.112 -> 1.113
ValueNumbering.cpp updated: 1.25 -> 1.26
---
Log message:

Do not use typeinfo to identify pass in pass manager.


---
Diffs of the changes:  (+61 -5)

AliasAnalysis.cpp          |    1 +
AliasAnalysisCounter.cpp   |    4 +++-
AliasAnalysisEvaluator.cpp |    4 ++++
AliasDebugger.cpp          |    4 ++++
AliasSetTracker.cpp        |    4 ++++
BasicAliasAnalysis.cpp     |    6 ++++++
CFGPrinter.cpp             |    6 ++++++
InstCount.cpp              |    4 ++++
IntervalPartition.cpp      |    4 +++-
LoadValueNumbering.cpp     |    3 +++
LoopInfo.cpp               |    1 +
LoopPass.cpp               |    5 ++++-
PostDominators.cpp         |    3 +++
ProfileInfo.cpp            |    7 ++++++-
ProfileInfoLoaderPass.cpp  |    4 +++-
ScalarEvolution.cpp        |    1 +
ValueNumbering.cpp         |    5 +++++
17 files changed, 61 insertions(+), 5 deletions(-)


Index: llvm/lib/Analysis/AliasAnalysis.cpp
diff -u 
llvm/lib/Analysis/AliasAnalysis.cpp:1.30llvm/lib/Analysis/AliasAnalysis.cpp:
1.31
--- llvm/lib/Analysis/AliasAnalysis.cpp:1.30    Fri Nov 17 01:10:51 2006
+++ llvm/lib/Analysis/AliasAnalysis.cpp Tue May  1 16:15:46 2007
@@ -34,6 +34,7 @@

// Register the AliasAnalysis interface, providing a nice name to refer
to.
namespace {
+  const int AliasAnalysis::ID = 0;
   RegisterAnalysisGroup<AliasAnalysis> Z("Alias Analysis");
}



Index: llvm/lib/Analysis/AliasAnalysisCounter.cpp
diff -u 
llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.20llvm/lib/Analysis/AliasAnalysisCounter.cpp:
1.21
--- llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.20     Mon Feb  5
17:42:17 2007
+++ llvm/lib/Analysis/AliasAnalysisCounter.cpp  Tue May  1 16:15:46 2007
@@ -34,7 +34,8 @@
     const char *Name;
     Module *M;
   public:
-    AliasAnalysisCounter() {
+    static const int ID; // Class identification, replacement for
typeinfo
+    AliasAnalysisCounter() : ModulePass((intptr_t) &ID) {
       No = May = Must = 0;
       NoMR = JustRef = JustMod = MR = 0;
     }
@@ -107,6 +108,7 @@
     }
   };

+  const int AliasAnalysisCounter::ID = 0;
   RegisterPass<AliasAnalysisCounter>
   X("count-aa", "Count Alias Analysis Query Responses");
   RegisterAnalysisGroup<AliasAnalysis> Y(X);


Index: llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
diff -u 
llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.33llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:
1.34
--- llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.33   Mon Feb  5
17:42:17 2007
+++ llvm/lib/Analysis/AliasAnalysisEvaluator.cpp        Tue May  1
16:15:46 2007
@@ -50,6 +50,9 @@
     unsigned NoModRef, Mod, Ref, ModRef;

   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+    AAEval() : FunctionPass((intptr_t)&ID) {}
+
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.addRequired<AliasAnalysis>();
       AU.setPreservesAll();
@@ -70,6 +73,7 @@
     bool doFinalization(Module &M);
   };

+  const int AAEval::ID = 0;
   RegisterPass<AAEval>
   X("aa-eval", "Exhaustive Alias Analysis Precision Evaluator");
}


Index: llvm/lib/Analysis/AliasDebugger.cpp
diff -u 
llvm/lib/Analysis/AliasDebugger.cpp:1.3llvm/lib/Analysis/AliasDebugger.cpp:
1.4
--- llvm/lib/Analysis/AliasDebugger.cpp:1.3     Mon Feb  5 17:42:17 2007
+++ llvm/lib/Analysis/AliasDebugger.cpp Tue May  1 16:15:46 2007
@@ -40,6 +40,9 @@
     std::set<const Value*> Vals;

   public:
+    static const int ID; // Class identification, replacement for
typeinfo
+    AliasDebugger() : ModulePass((intptr_t)&ID) {}
+
     bool runOnModule(Module &M) {
       InitializeAliasAnalysis(this);                 // set up super
class

@@ -119,6 +122,7 @@

   };

+  const int AliasDebugger::ID = 0;
   RegisterPass<AliasDebugger> X("debug-aa", "AA use debugger");
   RegisterAnalysisGroup<AliasAnalysis> Y(X);
}


Index: llvm/lib/Analysis/AliasSetTracker.cpp
diff -u 
llvm/lib/Analysis/AliasSetTracker.cpp:1.46llvm/lib/Analysis/AliasSetTracker.cpp:
1.47
--- llvm/lib/Analysis/AliasSetTracker.cpp:1.46  Mon Feb  5 17:42:17 2007
+++ llvm/lib/Analysis/AliasSetTracker.cpp       Tue May  1 16:15:46 2007
@@ -555,6 +555,9 @@
   class VISIBILITY_HIDDEN AliasSetPrinter : public FunctionPass {
     AliasSetTracker *Tracker;
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+    AliasSetPrinter() : FunctionPass((intptr_t)&ID) {}
+
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.setPreservesAll();
       AU.addRequired<AliasAnalysis>();
@@ -570,5 +573,6 @@
       return false;
     }
   };
+  const int AliasSetPrinter::ID = 0;
   RegisterPass<AliasSetPrinter> X("print-alias-sets", "Alias Set
Printer");
}


Index: llvm/lib/Analysis/BasicAliasAnalysis.cpp
diff -u 
llvm/lib/Analysis/BasicAliasAnalysis.cpp:1.108llvm/lib/Analysis/BasicAliasAnalysis.cpp:
1.109
--- llvm/lib/Analysis/BasicAliasAnalysis.cpp:1.108      Thu Apr 19
00:39:12 2007
+++ llvm/lib/Analysis/BasicAliasAnalysis.cpp    Tue May  1 16:15:46 2007
@@ -36,6 +36,9 @@
   /// such it doesn't follow many of the rules that other alias analyses
must.
   ///
   struct VISIBILITY_HIDDEN NoAA : public ImmutablePass, public
AliasAnalysis {
+    static const int ID; // Class identification, replacement for
typeinfo
+    NoAA() : ImmutablePass((intptr_t)&ID) {}
+
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.addRequired<TargetData>();
     }
@@ -74,6 +77,7 @@
   };

   // Register this pass...
+  const int NoAA::ID = 0;
   RegisterPass<NoAA>
   U("no-aa", "No Alias Analysis (always returns 'may' alias)");

@@ -88,6 +92,7 @@
   /// Because it doesn't chain to a previous alias analysis (like
-no-aa), it
   /// derives from the NoAA class.
   struct VISIBILITY_HIDDEN BasicAliasAnalysis : public NoAA {
+    static const int ID; // Class identification, replacement for
typeinfo
     AliasResult alias(const Value *V1, unsigned V1Size,
                       const Value *V2, unsigned V2Size);

@@ -119,6 +124,7 @@
   };

   // Register this pass...
+  const int BasicAliasAnalysis::ID = 0;
   RegisterPass<BasicAliasAnalysis>
   X("basicaa", "Basic Alias Analysis (default AA impl)");



Index: llvm/lib/Analysis/CFGPrinter.cpp
diff -u llvm/lib/Analysis/CFGPrinter.cpp:1.22llvm/lib/Analysis/CFGPrinter.cpp:
1.23
--- llvm/lib/Analysis/CFGPrinter.cpp:1.22       Mon Feb  5 17:42:17 2007
+++ llvm/lib/Analysis/CFGPrinter.cpp    Tue May  1 16:15:46 2007
@@ -91,6 +91,9 @@

namespace {
   struct VISIBILITY_HIDDEN CFGPrinter : public FunctionPass {
+    static const int ID; // Pass identifcation, replacement for typeid
+    CFGPrinter() : FunctionPass((intptr_t)&ID) {}
+
     virtual bool runOnFunction(Function &F) {
       std::string Filename = "cfg." + F.getName() + ".dot";
       cerr << "Writing '" << Filename << "'...";
@@ -111,10 +114,12 @@
     }
   };

+  const int CFGPrinter::ID = 0;
   RegisterPass<CFGPrinter> P1("print-cfg",
                               "Print CFG of function to 'dot' file");

   struct VISIBILITY_HIDDEN CFGOnlyPrinter : public CFGPrinter {
+    static const int ID; // Pass identifcation, replacement for typeid
     virtual bool runOnFunction(Function &F) {
       bool OldCFGOnly = CFGOnly;
       CFGOnly = true;
@@ -129,6 +134,7 @@
     }
   };

+  const int CFGOnlyPrinter::ID = 0;
   RegisterPass<CFGOnlyPrinter>
   P2("print-cfg-only",
      "Print CFG of function to 'dot' file (with no function bodies)");


Index: llvm/lib/Analysis/InstCount.cpp
diff -u llvm/lib/Analysis/InstCount.cpp:1.20llvm/lib/Analysis/InstCount.cpp:
1.21
--- llvm/lib/Analysis/InstCount.cpp:1.20        Mon Feb  5 17:42:17 2007
+++ llvm/lib/Analysis/InstCount.cpp     Tue May  1 16:15:46 2007
@@ -51,6 +51,9 @@
       abort();
     }
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+    InstCount() : FunctionPass((intptr_t)&ID) {}
+
     virtual bool runOnFunction(Function &F);

     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -60,6 +63,7 @@

   };

+  const int InstCount::ID = 0;
   RegisterPass<InstCount> X("instcount",
                             "Counts the various types of Instructions");
}


Index: llvm/lib/Analysis/IntervalPartition.cpp
diff -u 
llvm/lib/Analysis/IntervalPartition.cpp:1.32llvm/lib/Analysis/IntervalPartition.cpp:
1.33
--- llvm/lib/Analysis/IntervalPartition.cpp:1.32        Sun Aug 27
17:30:17 2006
+++ llvm/lib/Analysis/IntervalPartition.cpp     Tue May  1 16:15:46 2007
@@ -15,6 +15,7 @@
#include "llvm/Analysis/IntervalIterator.h"
using namespace llvm;

+const int IntervalPartition::ID = 0;
static RegisterPass<IntervalPartition>
X("intervals", "Interval Partition Construction", true);

@@ -88,7 +89,8 @@
// existing interval graph.  This takes an additional boolean parameter to
// distinguish it from a copy constructor.  Always pass in false for now.
//
-IntervalPartition::IntervalPartition(IntervalPartition &IP, bool) {
+IntervalPartition::IntervalPartition(IntervalPartition &IP, bool)
+  : FunctionPass((intptr_t) &ID) {
   Interval *FunctionStart = IP.getRootInterval();
   assert(FunctionStart && "Cannot operate on empty IntervalPartitions!");



Index: llvm/lib/Analysis/LoadValueNumbering.cpp
diff -u 
llvm/lib/Analysis/LoadValueNumbering.cpp:1.39llvm/lib/Analysis/LoadValueNumbering.cpp:
1.40
--- llvm/lib/Analysis/LoadValueNumbering.cpp:1.39       Tue Apr 17
12:52:45 2007
+++ llvm/lib/Analysis/LoadValueNumbering.cpp    Tue May  1 16:15:46 2007
@@ -40,6 +40,8 @@
namespace {
   // FIXME: This should not be a FunctionPass.
   struct VISIBILITY_HIDDEN LoadVN : public FunctionPass, public
ValueNumbering {
+    static const int ID; // Class identification, replacement for
typeinfo
+    LoadVN() : FunctionPass((intptr_t)&ID) {}

     /// Pass Implementation stuff.  This doesn't do any analysis.
     ///
@@ -81,6 +83,7 @@
                                  std::vector<Value*> &RetVals) const;
   };

+  const int LoadVN::ID = 0;
   // Register this pass...
   RegisterPass<LoadVN> X("load-vn", "Load Value Numbering");



Index: llvm/lib/Analysis/LoopInfo.cpp
diff -u llvm/lib/Analysis/LoopInfo.cpp:1.83llvm/lib/Analysis/LoopInfo.cpp:
1.84
--- llvm/lib/Analysis/LoopInfo.cpp:1.83 Sat Mar  3 22:06:39 2007
+++ llvm/lib/Analysis/LoopInfo.cpp      Tue May  1 16:15:46 2007
@@ -27,6 +27,7 @@
#include <ostream>
using namespace llvm;

+const int LoopInfo::ID = 0;
static RegisterPass<LoopInfo>
X("loops", "Natural Loop Construction", true);



Index: llvm/lib/Analysis/LoopPass.cpp
diff -u llvm/lib/Analysis/LoopPass.cpp:1.18llvm/lib/Analysis/LoopPass.cpp:
1.19
--- llvm/lib/Analysis/LoopPass.cpp:1.18 Wed Mar  7 00:39:01 2007
+++ llvm/lib/Analysis/LoopPass.cpp      Tue May  1 16:15:46 2007
@@ -20,9 +20,12 @@

//===----------------------------------------------------------------------===//
// LPPassManager
//
+
+const int LPPassManager::ID = 0;
/// LPPassManager manages FPPassManagers and CalLGraphSCCPasses.

-LPPassManager::LPPassManager(int Depth) : PMDataManager(Depth) {
+LPPassManager::LPPassManager(int Depth)
+  : FunctionPass((intptr_t)&ID), PMDataManager(Depth) {
   skipThisLoop = false;
   redoThisLoop = false;
   LI = NULL;


Index: llvm/lib/Analysis/PostDominators.cpp
diff -u 
llvm/lib/Analysis/PostDominators.cpp:1.67llvm/lib/Analysis/PostDominators.cpp:
1.68
--- llvm/lib/Analysis/PostDominators.cpp:1.67   Tue Apr 17 20:19:55 2007
+++ llvm/lib/Analysis/PostDominators.cpp        Tue May  1 16:15:46 2007
@@ -22,6 +22,9 @@
//  PostDominatorTree Implementation

//===----------------------------------------------------------------------===//

+const int PostDominatorTree::ID = 0;
+const int PostDominanceFrontier::ID = 0;
+const int PostETForest::ID = 0;
static RegisterPass<PostDominatorTree>
F("postdomtree", "Post-Dominator Tree Construction", true);



Index: llvm/lib/Analysis/ProfileInfo.cpp
diff -u llvm/lib/Analysis/ProfileInfo.cpp:1.11llvm/lib/Analysis/ProfileInfo.cpp:
1.12
--- llvm/lib/Analysis/ProfileInfo.cpp:1.11      Thu Mar 22 11:38:57 2007
+++ llvm/lib/Analysis/ProfileInfo.cpp   Tue May  1 16:15:46 2007
@@ -22,6 +22,7 @@

// Register the ProfileInfo interface, providing a nice name to refer to.
namespace {
+  const int ProfileInfo::ID = 0;
   RegisterAnalysisGroup<ProfileInfo> Z("Profile Information");
}

@@ -84,8 +85,12 @@

namespace {
   struct VISIBILITY_HIDDEN NoProfileInfo
-    : public ImmutablePass, public ProfileInfo {};
+    : public ImmutablePass, public ProfileInfo {
+    static const int ID; // Class identification, replacement for
typeinfo
+    NoProfileInfo() : ImmutablePass((intptr_t)&ID) {}
+  };

+  const int NoProfileInfo::ID = 0;
   // Register this pass...
   RegisterPass<NoProfileInfo>
   X("no-profile", "No Profile Information");


Index: llvm/lib/Analysis/ProfileInfoLoaderPass.cpp
diff -u 
llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.18llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:
1.19
--- llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.18    Mon Feb  5
17:42:17 2007
+++ llvm/lib/Analysis/ProfileInfoLoaderPass.cpp Tue May  1 16:15:46 2007
@@ -32,8 +32,9 @@
   class VISIBILITY_HIDDEN LoaderPass : public ModulePass, public
ProfileInfo {
     std::string Filename;
   public:
+    static const int ID; // Class identification, replacement for
typeinfo
     LoaderPass(const std::string &filename = "")
-      : Filename(filename) {
+      : ModulePass((intptr_t)&ID), Filename(filename) {
       if (filename.empty()) Filename = ProfileInfoFilename;
     }

@@ -49,6 +50,7 @@
     virtual bool runOnModule(Module &M);
   };

+  const int LoaderPass::ID = 0;
   RegisterPass<LoaderPass>
   X("profile-loader", "Load profile information from llvmprof.out");



Index: llvm/lib/Analysis/ScalarEvolution.cpp
diff -u 
llvm/lib/Analysis/ScalarEvolution.cpp:1.112llvm/lib/Analysis/ScalarEvolution.cpp:
1.113
--- llvm/lib/Analysis/ScalarEvolution.cpp:1.112 Sun Apr 15 21:24:41 2007
+++ llvm/lib/Analysis/ScalarEvolution.cpp       Tue May  1 16:15:46 2007
@@ -102,6 +102,7 @@
                         cl::init(100));

namespace {
+  const int ScalarEvolution::ID = 0;
   RegisterPass<ScalarEvolution>
   R("scalar-evolution", "Scalar Evolution Analysis");
}


Index: llvm/lib/Analysis/ValueNumbering.cpp
diff -u 
llvm/lib/Analysis/ValueNumbering.cpp:1.25llvm/lib/Analysis/ValueNumbering.cpp:
1.26
--- llvm/lib/Analysis/ValueNumbering.cpp:1.25   Mon Feb  5 17:42:17 2007
+++ llvm/lib/Analysis/ValueNumbering.cpp        Tue May  1 16:15:46 2007
@@ -22,6 +22,7 @@
#include "llvm/Support/Compiler.h"
using namespace llvm;

+const int ValueNumbering::ID = 0;
// Register the ValueNumbering interface, providing a nice name to refer
to.
static RegisterAnalysisGroup<ValueNumbering> X("Value Numbering");

@@ -51,6 +52,9 @@
   ///
   struct VISIBILITY_HIDDEN BasicVN
       : public ImmutablePass, public ValueNumbering {
+    static const int ID; // Class identification, replacement for
typeinfo
+    BasicVN() : ImmutablePass((intptr_t)&ID) {}
+
     /// getEqualNumberNodes - Return nodes with the same value number as
the
     /// specified Value.  This fills in the argument vector with any
equal
     /// values.
@@ -61,6 +65,7 @@
                                      std::vector<Value*> &RetVals) const;
   };

+  const int BasicVN::ID = 0;
   // Register this pass...
   RegisterPass<BasicVN>
   X("basicvn", "Basic Value Numbering (default GVN impl)");



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to