Merge significant portions of the DomTree and PostDomTree implementations.
[oota-llvm.git] / lib / Analysis / AliasDebugger.cpp
index ddbb7bde4cae9e6ba6eb4cb15643c33b19c6b97b..bbb7acf8edb0c5f6ee5febb7f4b55342fcc7b8a4 100644 (file)
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Support/Compiler.h"
 #include <set>
 using namespace llvm;
 
 namespace {
   
-  class AliasDebugger : public ModulePass, public AliasAnalysis {
+  class VISIBILITY_HIDDEN AliasDebugger 
+      : public ModulePass, public AliasAnalysis {
 
     //What we do is simple.  Keep track of every value the AA could
     //know about, and verify that queries are one of those.
@@ -38,6 +40,9 @@ namespace {
     std::set<const Value*> Vals;
     
   public:
+    static char ID; // Class identification, replacement for typeinfo
+    AliasDebugger() : ModulePass((intptr_t)&ID) {}
+
     bool runOnModule(Module &M) {
       InitializeAliasAnalysis(this);                 // set up super class
 
@@ -48,7 +53,7 @@ namespace {
       for(Module::iterator I = M.begin(),
             E = M.end(); I != E; ++I){
         Vals.insert(&*I);
-        if(!I->isExternal()) {
+        if(!I->isDeclaration()) {
           for (Function::arg_iterator AI = I->arg_begin(), AE = I->arg_end();
                AI != AE; ++AI) 
             Vals.insert(&*AI);     
@@ -117,6 +122,7 @@ namespace {
 
   };
 
+  char AliasDebugger::ID = 0;
   RegisterPass<AliasDebugger> X("debug-aa", "AA use debugger");
   RegisterAnalysisGroup<AliasAnalysis> Y(X);
 }