Rename -fluffig to -fsync, perform opt_sync() (formerly opt_ldst2()) last to not...
authorChristoph Mallon <christoph.mallon@gmx.de>
Thu, 4 Sep 2008 09:32:26 +0000 (09:32 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Thu, 4 Sep 2008 09:32:26 +0000 (09:32 +0000)
[r21690]

driver/firm_cmdline.c
driver/firm_cmdline.h
driver/firm_opt.c

index bb8b94a..663c1a0 100644 (file)
@@ -52,7 +52,7 @@ struct a_firm_opt firm_opt = {
   /* alias_analysis  = */ TRUE,
   /* strict_alias    = */ FALSE,
   /* no_alias        = */ FALSE,
-  /* luffig          = */ FALSE,
+  /* sync            = */ FALSE,
   /* deconv          = */ FALSE,
   /* cc_opt          = */ TRUE,
   /* bool_opt        = */ FALSE,
@@ -184,8 +184,8 @@ static const struct params {
   { X("fp-precise"),             &firm_opt.fp_model,         fp_model_precise, "firm: precise fp model" },
   { X("fp-fast"),                &firm_opt.fp_model,         fp_model_fast,    "firm: fast fp model" },
   { X("fp-strict"),              &firm_opt.fp_model,         fp_model_strict,  "firm: strict fp model" },
-  { X("luffig"),                 &firm_opt.luffig,           1, "firm: enable the fluffy load/store optimization" },
-  { X("no-luffig"),              &firm_opt.luffig,           0, "firm: disable the fluffy load/store optimization" },
+  { X("sync"),                   &firm_opt.sync,             1, "firm: use Syncs to remove unnecessary memory dependencies" },
+  { X("no-sync"),                &firm_opt.sync,             0, "firm: do not use Syncs to remove unnecessary memory dependencies" },
   { X("deconv"),                 &firm_opt.deconv,           1, "firm: enable the conv node optimization" },
   { X("no-deconv"),              &firm_opt.deconv,           0, "firm: disable the conv node optimization" },
   { X("opt-cc"),                 &firm_opt.cc_opt,           1, "firm: enable calling conventions optimization" },
@@ -313,7 +313,7 @@ static void disable_opts(void) {
   firm_opt.alias_analysis  = FALSE;
   firm_opt.strict_alias    = FALSE;
   firm_opt.no_alias        = FALSE;
-  firm_opt.luffig          = FALSE;
+  firm_opt.sync            = FALSE;
   firm_opt.deconv          = FALSE;
   firm_opt.cc_opt          = FALSE;
   firm_opt.bool_opt        = FALSE;
index ba178b2..95b90e0 100644 (file)
@@ -59,7 +59,7 @@ struct a_firm_opt {
   a_byte   alias_analysis;  /**< enable Alias Analysis */
   a_byte   strict_alias;    /**< enable strict Alias Analysis (using type based AA) */
   a_byte   no_alias;        /**< no aliasing possible. */
-  a_byte   luffig;          /**< enable fluffy load/store optimization */
+  a_byte   sync;            /**< use Syncs to remove unnecessary memory dependencies */
   a_byte   deconv;          /**< enable conv node optimization */
   a_byte   cc_opt;          /**< optimize calling conventions */
   a_byte   bool_opt;        /**< perform bool simplification */
index 03560ce..637995c 100644 (file)
@@ -378,7 +378,7 @@ static opt_config_t opts[] = {
        { OPT_TARGET_IRG, "place",       (func_ptr_t) place_code,              true, true,  true,  TV_CODE_PLACE },
        { OPT_TARGET_IRG, "confirm",     (func_ptr_t) construct_confirms,      true, true,  true,  TV_CONFIRM_CREATE },
        { OPT_TARGET_IRG, "ldst",        (func_ptr_t) optimize_load_store,     true, true,  true,  TV_LOAD_STORE },
-       { OPT_TARGET_IRG, "ldst2",       (func_ptr_t) opt_ldst2,               true, true,  true,  -1 },
+       { OPT_TARGET_IRG, "sync",        (func_ptr_t) opt_sync,                true, true,  true,  -1 },
        { OPT_TARGET_IRG, "lower",       (func_ptr_t) do_lower_highlevel,      true, true,  true,  -1 },
        { OPT_TARGET_IRG, "deconv",      (func_ptr_t) conv_opt,                true, true,  true,  TV_DECONV },
        { OPT_TARGET_IRG, "condeval",    (func_ptr_t) opt_cond_eval,           true, true,  true,  TV_COND_EVAL },
@@ -496,7 +496,7 @@ static void do_firm_optimizations(const char *input_filename)
   set_opt_enabled("place", !firm_opt.gcse);
   set_opt_enabled("confirm", firm_opt.confirm);
   set_opt_enabled("remove_confirms", firm_opt.confirm);
-  set_opt_enabled("ldst2", firm_opt.luffig);
+  set_opt_enabled("sync", firm_opt.sync);
   set_opt_enabled("ldst", firm_opt.load_store);
   set_opt_enabled("deconv", firm_opt.deconv);
   set_opt_enabled("condeval", firm_opt.cond_eval);
@@ -554,7 +554,6 @@ static void do_firm_optimizations(const char *input_filename)
       do_irg_opt(irg, "local");
     }
 
-    do_irg_opt(irg, "ldst2");
     do_irg_opt(irg, "controlflow");
     do_irg_opt(irg, "ldst");
     do_irg_opt(irg, "lower");
@@ -914,6 +913,8 @@ static void do_firm_lowering(const char *input_filename)
         DUMP_ONE_C(firm_dump.ir_graph && firm_dump.all_phases, current_ir_graph, "after_if");
         CHECK_ONE(firm_opt.check_all, current_ir_graph);
       }
+
+                       do_irg_opt(current_ir_graph, "sync");
     }
     timer_stop(TV_ALL_OPT);