X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbemain.c;h=b4ccce504c510c94f7a7081d1ca5e638534e3098;hb=b7936c30acf06e28df82497df4ff2779e6b84b4b;hp=1cff81d9d2b68651c0608e91d44645c6e9d177e9;hpb=b8ca3b64836c0b4ce1589adf9fb5621aff10619a;p=libfirm diff --git a/ir/be/bemain.c b/ir/be/bemain.c index 1cff81d9d..b4ccce504 100644 --- a/ir/be/bemain.c +++ b/ir/be/bemain.c @@ -89,6 +89,7 @@ static be_options_t be_options = { BE_TIME_OFF, /* no timing */ 0, /* no opt profile */ 0, /* try to omit frame pointer */ + 0, /* try to omit leaf frame pointer */ 0, /* create PIC code */ 0, /* create gprof compatible profiling code */ BE_VRFY_WARN, /* verification level: warn */ @@ -150,19 +151,20 @@ static lc_opt_enum_int_var_t sched_var = { }; static const lc_opt_table_entry_t be_main_options[] = { - LC_OPT_ENT_STR ("config", "read another config file containing backend options", config_file, sizeof(config_file)), - LC_OPT_ENT_ENUM_MASK("dump", "dump irg on several occasions", &dump_var), - LC_OPT_ENT_BOOL ("omitfp", "omit frame pointer", &be_options.omit_fp), - LC_OPT_ENT_BOOL ("pic", "create PIC code", &be_options.pic), - LC_OPT_ENT_BOOL ("gprof", "create gprof profiling code", &be_options.gprof), - LC_OPT_ENT_ENUM_PTR ("vrfy", "verify the backend irg", &vrfy_var), - LC_OPT_ENT_BOOL ("time", "get backend timing statistics", &be_options.timing), - LC_OPT_ENT_BOOL ("profile", "instrument the code for execution count profiling", &be_options.opt_profile), - LC_OPT_ENT_ENUM_PTR ("sched", "select a scheduler", &sched_var), - LC_OPT_ENT_STR ("os", "specify target operating system", &be_options.target_os, sizeof(be_options.target_os)), + LC_OPT_ENT_STR ("config", "read another config file containing backend options", config_file, sizeof(config_file)), + LC_OPT_ENT_ENUM_MASK("dump", "dump irg on several occasions", &dump_var), + LC_OPT_ENT_BOOL ("omitfp", "omit frame pointer", &be_options.omit_fp), + LC_OPT_ENT_BOOL ("omitleaffp", "omit frame pointer in leaf routines", &be_options.omit_leaf_fp), + LC_OPT_ENT_BOOL ("pic", "create PIC code", &be_options.pic), + LC_OPT_ENT_BOOL ("gprof", "create gprof profiling code", &be_options.gprof), + LC_OPT_ENT_ENUM_PTR ("vrfy", "verify the backend irg", &vrfy_var), + LC_OPT_ENT_BOOL ("time", "get backend timing statistics", &be_options.timing), + LC_OPT_ENT_BOOL ("profile", "instrument the code for execution count profiling", &be_options.opt_profile), + LC_OPT_ENT_ENUM_PTR ("sched", "select a scheduler", &sched_var), + LC_OPT_ENT_STR ("os", "specify target operating system", &be_options.target_os, sizeof(be_options.target_os)), #ifdef FIRM_STATISTICS - LC_OPT_ENT_BOOL ("statev", "dump statistic events", &be_options.statev), - LC_OPT_ENT_STR ("filtev", "filter for stat events (regex if support is active", &be_options.filtev, sizeof(be_options.filtev)), + LC_OPT_ENT_BOOL ("statev", "dump statistic events", &be_options.statev), + LC_OPT_ENT_STR ("filtev", "filter for stat events (regex if support is active", &be_options.filtev, sizeof(be_options.filtev)), #endif #ifdef WITH_ILP @@ -334,7 +336,7 @@ static void initialize_birg(be_irg_t *birg, ir_graph *irg, be_main_env_t *env) normalize_n_returns(irg); /* Remove critical edges */ - remove_critical_cf_edges(irg); + remove_critical_cf_edges_ex(irg, /*ignore_exception_edges=*/0); /* Ensure, that the ir_edges are computed. */ edges_assure(irg);