From: Chris Lattner Date: Thu, 18 Oct 2001 01:31:43 +0000 (+0000) Subject: * Passes return true if they change something, not if they fail X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6db0f4795cbd9b58add13c2b2f0c7124112ab9b7;p=oota-llvm.git * Passes return true if they change something, not if they fail * Convert opt to use Pass's and convert optimizations to pass structure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@870 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 973a78ff8d3..3d62ef8ebf5 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -39,17 +39,17 @@ enum Opts { struct { enum Opts OptID; - bool (*OptPtr)(Module *C); + Pass *ThePass; } OptTable[] = { - { dce , DoDeadCodeElimination }, - { constprop, DoConstantPropogation }, - { inlining , DoMethodInlining }, - { strip , DoSymbolStripping }, - { mstrip , DoFullSymbolStripping }, - { indvars , DoInductionVariableCannonicalize }, - { sccp , DoSCCP }, - { adce , DoADCE }, - { raise , DoRaiseRepresentation }, + { dce , new opt::DeadCodeElimination() }, + { constprop, new opt::ConstantPropogation() }, + { inlining , new opt::MethodInlining() }, + { strip , new opt::SymbolStripping() }, + { mstrip , new opt::FullSymbolStripping() }, + { indvars , new opt::InductionVariableCannonicalize() }, + { sccp , new opt::SCCPPass() }, + { adce , new opt::AgressiveDCE() }, + { raise , new opt::RaiseRepresentation() }, }; cl::String InputFilename ("", "Load file to optimize", cl::NoFlags, "-"); @@ -86,7 +86,7 @@ int main(int argc, char **argv) { unsigned j; for (j = 0; j < sizeof(OptTable)/sizeof(OptTable[0]); ++j) { if (Opt == OptTable[j].OptID) { - if (OptTable[j].OptPtr(C) && !Quiet) + if (OptTable[j].ThePass->run(C) && !Quiet) cerr << OptimizationList.getArgName(Opt) << " pass made modifications!\n"; break;