* 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
This commit is contained in:
Chris Lattner 2001-10-18 01:31:43 +00:00
parent 05e5e070ee
commit 6db0f4795c

View File

@ -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;