void addOpt( char* arg, Codegen cg ) { if ( strcmp( "-O1", arg ) == 0 ) { std::cout << "Optimization: instruction combining" << std::endl; cg.opt_instcombine(); } else if ( strcmp( "-O2", arg ) == 0 ) { std::cout << "Optimization: reassociate" << std::endl; cg.opt_reassociate(); } else if ( strcmp( "-O3", arg ) == 0 ) { std::cout << "Optimization: dead code elimination" << std::endl; cg.opt_dce(); } else if ( strcmp( "-O4", arg ) == 0 ) { std::cout << "Optimization: global value numbering" << std::endl; cg.opt_gvn(); } else if ( strcmp( "-O5", arg ) == 0 ) { std::cout << "Optimization: simplify CFG" << std::endl; cg.opt_simplifyCFG(); } else if ( strcmp( "-Oall", arg ) == 0 ) { std::cout << "Optimization: instruction combining, " << std::endl << "\t reassociate, " << std::endl << "\t dead code elimination, " << std::endl << "\t global value numbering, " << std::endl << "\t simplify CFG" << std::endl; cg.opt_instcombine(); cg.opt_reassociate(); cg.opt_dce(); cg.opt_gvn(); cg.opt_simplifyCFG(); } }