From 476e9bd1146624fa17243ae55fdb156f905ba3d4 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 22 Jan 2010 06:03:06 +0000 Subject: elimiante the dynamic_cast's from opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94160 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/opt/opt.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'tools/opt') diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index f7fd5c02b5..6ed8c9ded0 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -479,16 +479,23 @@ int main(int argc, char **argv) { addPass(Passes, P); if (AnalyzeOnly) { - if (dynamic_cast(P)) + switch (P->getPassKind()) { + case PT_BasicBlock: Passes.add(new BasicBlockPassPrinter(PassInf)); - else if (dynamic_cast(P)) + break; + case PT_Loop: Passes.add(new LoopPassPrinter(PassInf)); - else if (dynamic_cast(P)) + break; + case PT_Function: Passes.add(new FunctionPassPrinter(PassInf)); - else if (dynamic_cast(P)) + break; + case PT_CallGraphSCC: Passes.add(new CallGraphSCCPassPrinter(PassInf)); - else + break; + default: Passes.add(new ModulePassPrinter(PassInf)); + break; + } } } -- cgit v1.2.3