diff options
| author | Chris Lattner <sabre@nondot.org> | 2001-11-26 18:18:53 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2001-11-26 18:18:53 +0000 |
| commit | bf3bfebb7b24c01093655f2a16d4d8da4aca1caa (patch) | |
| tree | c8a2f29f8d2858e389deda5e8c4454f5cd351944 /llvm | |
| parent | 5ba757369cc5961bdc20031d55bc2e0ef6d607f6 (diff) | |
| download | bcm5719-llvm-bf3bfebb7b24c01093655f2a16d4d8da4aca1caa.tar.gz bcm5719-llvm-bf3bfebb7b24c01093655f2a16d4d8da4aca1caa.zip | |
Change swapstructs itf
Add nasty hack to be removed later
llvm-svn: 1356
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/tools/opt/opt.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp index dcd1c90cd35..f43ad241c89 100644 --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -36,6 +36,7 @@ struct { enum Opts OptID; Pass *ThePass; } OptTable[] = { + { swapstructs, 0 }, { dce , new opt::DeadCodeElimination() }, { constprop, new opt::ConstantPropogation() }, { inlining , new opt::MethodInlining() }, @@ -50,7 +51,6 @@ struct { { tracem , new InsertTraceCode(false, true) }, { print , new PrintModulePass("Current Method: \n",&cerr) }, { cleangcc , new CleanupGCCOutput() }, - { swapstructs, new SwapStructContents() }, }; cl::String InputFilename ("", "Load <arg> file to optimize", cl::NoFlags, "-"); @@ -81,20 +81,24 @@ cl::EnumList<enum Opts> OptimizationList(cl::NoFlags, int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .bc modular optimizer\n"); - - Module *C = ParseBytecodeFile(InputFilename); - if (C == 0) { + + // FIXME: Use smartptr + Module *M = ParseBytecodeFile(InputFilename); + if (M == 0) { cerr << "bytecode didn't read correctly.\n"; return 1; } + // FIXME: Absurdly nasty hack. + OptTable[0].ThePass = new PrebuiltStructMutation(M, PrebuiltStructMutation::SortElements); + for (unsigned i = 0; i < OptimizationList.size(); ++i) { enum Opts Opt = OptimizationList[i]; unsigned j; for (j = 0; j < sizeof(OptTable)/sizeof(OptTable[0]); ++j) { if (Opt == OptTable[j].OptID) { - if (OptTable[j].ThePass->run(C) && !Quiet) + if (OptTable[j].ThePass->run(M) && !Quiet) cerr << OptimizationList.getArgName(Opt) << " pass made modifications!\n"; break; @@ -111,14 +115,14 @@ int main(int argc, char **argv) { (Force ? 0 : ios::noreplace)|ios::out); if (!Out->good()) { cerr << "Error opening " << OutputFilename << "!\n"; - delete C; + delete M; return 1; } } // Okay, we're done now... write out result... - WriteBytecodeToFile(C, *Out); - delete C; + WriteBytecodeToFile(M, *Out); + delete M; if (Out != &cout) delete Out; return 0; |

