From 2e9175a0858a2f5005716e4a84ec03f757c25966 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 28 Apr 2002 05:14:06 +0000 Subject: [PATCH] Minor changes to allow Modules (which are no longer Values) to work git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2361 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Pass.cpp | 19 +++++++++---------- lib/VMCore/PassManagerT.h | 10 ++++++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp index 14ebd50dd16..beef60fd470 100644 --- a/lib/VMCore/Pass.cpp +++ b/lib/VMCore/Pass.cpp @@ -49,22 +49,21 @@ void PMDebug::PrintPassStructure(Pass *P) { } void PMDebug::PrintPassInformation(unsigned Depth, const char *Action, - Pass *P, Value *V) { + Pass *P, Annotable *V) { if (PassDebugging >= PassExecutions) { std::cerr << (void*)P << std::string(Depth*2+1, ' ') << Action << " '" << typeid(*P).name(); if (V) { std::cerr << "' on "; - switch (V->getValueType()) { - case Value::ModuleVal: + + if (dynamic_cast(V)) { std::cerr << "Module\n"; return; - case Value::FunctionVal: - std::cerr << "Function '" << V->getName(); break; - case Value::BasicBlockVal: - std::cerr << "BasicBlock '" << V->getName(); break; - default: - std::cerr << typeid(*V).name() << " '" << V->getName(); break; - } + } else if (Function *F = dynamic_cast(V)) + std::cerr << "Function '" << F->getName(); + else if (BasicBlock *BB = dynamic_cast(V)) + std::cerr << "BasicBlock '" << BB->getName(); + else if (Value *Val = dynamic_cast(V)) + std::cerr << typeid(*Val).name() << " '" << Val->getName(); } std::cerr << "'...\n"; } diff --git a/lib/VMCore/PassManagerT.h b/lib/VMCore/PassManagerT.h index a8c8d579be2..d4dfda02d66 100644 --- a/lib/VMCore/PassManagerT.h +++ b/lib/VMCore/PassManagerT.h @@ -15,6 +15,7 @@ #include "llvm/Pass.h" #include #include +class Annotable; //===----------------------------------------------------------------------===// // PMDebug class - a set of debugging functions, that are not to be @@ -25,7 +26,7 @@ struct PMDebug { // -debug-pass on the command line of the tool being used. // static void PrintPassStructure(Pass *P); - static void PrintPassInformation(unsigned,const char*,Pass *, Value *); + static void PrintPassInformation(unsigned,const char*,Pass *, Annotable *); static void PrintAnalysisSetInfo(unsigned,const char*,Pass *P, const std::vector &); }; @@ -105,7 +106,8 @@ public: for (unsigned i = 0, e = Passes.size(); i < e; ++i) { PassClass *P = Passes[i]; - PMDebug::PrintPassInformation(getDepth(), "Executing Pass", P, (Value*)M); + PMDebug::PrintPassInformation(getDepth(), "Executing Pass", P, + (Annotable*)M); // Get information about what analyses the pass uses... AnalysisUsage AnUsage; @@ -128,7 +130,7 @@ public: if (Changed) PMDebug::PrintPassInformation(getDepth()+1, "Made Modification", P, - (Value*)M); + (Annotable*)M); PMDebug::PrintAnalysisSetInfo(getDepth(), "Preserved", P, AnUsage.getPreservedSet()); PMDebug::PrintAnalysisSetInfo(getDepth(), "Provided", P, @@ -165,7 +167,7 @@ public: for (std::vector::iterator I = DeadPass.begin(),E = DeadPass.end(); I != E; ++I) { PMDebug::PrintPassInformation(getDepth()+1, "Freeing Pass", *I, - (Value*)M); + (Annotable*)M); (*I)->releaseMemory(); } }