From 6a9cb81d6a96969b8608d395820f20d5b0d5baaa Mon Sep 17 00:00:00 2001 From: Andreas Zwinkau Date: Fri, 25 Mar 2011 15:03:31 +0100 Subject: [PATCH] Remove gcse optimization It does exactly the same as 'place', so where 'gcse' was called by default, the driver now calls 'place'. --- driver/firm_cmdline.c | 4 ---- driver/firm_cmdline.h | 1 - driver/firm_opt.c | 15 ++------------- 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/driver/firm_cmdline.c b/driver/firm_cmdline.c index da6ed06..d9a690a 100644 --- a/driver/firm_cmdline.c +++ b/driver/firm_cmdline.c @@ -19,7 +19,6 @@ struct a_firm_opt firm_opt = { /* debug_mode = */ DBG_MODE_NONE, /* const_folding = */ TRUE, /* cse = */ TRUE, - /* gcse = */ TRUE, /* confirm = */ TRUE, /* muls = */ TRUE, /* divs = */ TRUE, @@ -93,8 +92,6 @@ static const struct params { { X("no-cse"), &firm_opt.cse, 0, "firm: disable common subexpression elimination" }, { X("const-fold"), &firm_opt.const_folding, 1, "firm: enable constant folding" }, { X("no-const-fold"), &firm_opt.const_folding, 0, "firm: disable constant folding" }, - { X("gcse"), &firm_opt.gcse, 1, "firm: enable global common subexpression elimination" }, - { X("no-gcse"), &firm_opt.gcse, 0, "firm: disable global common subexpression elimination" }, { X("inline-max-size="), NULL, 0, "firm: set maximum size for function inlining" }, { X("inline-threshold="),NULL, 0, "firm: set benefice threshold for function inlining" }, { X("confirm"), &firm_opt.confirm, 1, "firm: enable Confirm optimization" }, @@ -192,7 +189,6 @@ static void set_dump_filter(const char *filter) /** Disable all optimizations. */ static void disable_opts(void) { firm_opt.cse = FALSE; - firm_opt.gcse = FALSE; firm_opt.confirm = FALSE; firm_opt.muls = FALSE; firm_opt.divs = FALSE; diff --git a/driver/firm_cmdline.h b/driver/firm_cmdline.h index 7a230b7..ae71c7e 100644 --- a/driver/firm_cmdline.h +++ b/driver/firm_cmdline.h @@ -24,7 +24,6 @@ struct a_firm_opt { a_byte debug_mode; /**< debug mode: store all local variables */ a_byte const_folding; /**< enable constant folding */ a_byte cse; /**< enable common-subexpression elimination */ - a_byte gcse; /**< enable global common-subexpression elimination */ a_byte confirm; /**< enable Confirm optimization */ a_byte muls; /**< enable architecture dependent mul optimization */ a_byte divs; /**< enable architecture dependent div optimization */ diff --git a/driver/firm_opt.c b/driver/firm_opt.c index 14855cc..338ce4a 100644 --- a/driver/firm_opt.c +++ b/driver/firm_opt.c @@ -157,14 +157,6 @@ static void do_optimize_funccalls(void) optimize_funccalls(firm_const_exists, NULL); } -static void do_gcse(ir_graph *irg) -{ - set_opt_global_cse(1); - optimize_graph_df(irg); - place_code(irg); - set_opt_global_cse(0); -} - static void do_lower_highlevel(ir_graph *irg) { lower_highlevel_graph(irg, firm_opt.lower_bitfields); @@ -245,7 +237,6 @@ static opt_config_t opts[] = { IRG("deconv", conv_opt, "conv node elimination", OPT_FLAG_NONE), IRG("fp-vrp", fixpoint_vrp, "fixpoint value range propagation", OPT_FLAG_NONE), IRG("frame", opt_frame_irg, "remove unused frame entities", OPT_FLAG_NONE), - IRG("gcse", do_gcse, "global common subexpression elimination", OPT_FLAG_NONE), IRG("gvn-pre", do_gvn_pre, "global value numbering partial redundancy elimination", OPT_FLAG_NONE), IRG("if-conversion", opt_if_conv, "if-conversion", OPT_FLAG_NONE), IRG("invert-loops", do_loop_inversion, "loop inversion", OPT_FLAG_NONE), @@ -420,8 +411,6 @@ static void do_firm_optimizations(const char *input_filename) set_irp_memory_disambiguator_options(aa_opt); /* parameter passing code should set them directly sometime... */ - set_opt_enabled("gcse", firm_opt.gcse); - set_opt_enabled("place", !firm_opt.gcse); set_opt_enabled("confirm", firm_opt.confirm); set_opt_enabled("remove-confirms", firm_opt.confirm); @@ -458,7 +447,7 @@ static void do_firm_optimizations(const char *input_filename) do_irg_opt(irg, "local"); do_irg_opt(irg, "reassociation"); do_irg_opt(irg, "local"); - do_irg_opt(irg, "gcse"); + do_irg_opt(irg, "place"); if (firm_opt.confirm) { /* Confirm construction currently can only handle blocks with only @@ -562,7 +551,7 @@ static void do_firm_lowering(const char *input_filename) ir_graph *irg = get_irp_irg(i); do_irg_opt(irg, "local"); - do_irg_opt(irg, "gcse"); + do_irg_opt(irg, "place"); do_irg_opt(irg, "control-flow"); do_irg_opt(irg, "opt-load-store"); do_irg_opt(irg, "local"); -- 2.20.1