aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-10-18 01:31:43 +0000
committerChris Lattner <sabre@nondot.org>2001-10-18 01:31:43 +0000
commit6db0f4795cbd9b58add13c2b2f0c7124112ab9b7 (patch)
tree74ce4d150f026a5c340b4c73e7399d6c6bee450a
parent05e5e070ee73309025e11bea0c15d7fc9c25fea6 (diff)
* 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
-rw-r--r--tools/opt/opt.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 973a78ff8d..3d62ef8ebf 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 <arg> 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;