move load mode shrinking into ldst phase
[libfirm] / ir / opt / boolopt.c
index 7edc2c7..1ca6527 100644 (file)
@@ -21,7 +21,6 @@
  * @file
  * @brief   boolean condition/control flow optimizations
  * @author  Matthias Braun, Christoph Mallon, Michael Beck
- * @version $Id: cfopt.c 22579 2008-10-07 14:54:04Z beck $
  */
 #include "config.h"
 
@@ -39,7 +38,6 @@
 #include "tv.h"
 #include "irpass.h"
 #include "debug.h"
-#include "opt_manage.h"
 
 /** Describes a pair of relative conditions lo < hi, lo rel_lo x, hi rel_hi x */
 typedef struct cond_pair {
@@ -717,10 +715,9 @@ restart:
        }
 }
 
-static ir_graph_state_t do_simplify_bool(ir_graph *const irg)
+void opt_bool(ir_graph *const irg)
 {
        bool_opt_env_t env;
-       ir_graph_state_t res = 0;
 
        /* register a debug mask */
        FIRM_DBG_REGISTER(dbg, "firm.opt.bool");
@@ -730,30 +727,14 @@ static ir_graph_state_t do_simplify_bool(ir_graph *const irg)
        /* optimize simple Andb and Orb cases */
        irg_walk_graph(irg, NULL, bool_walk, &env);
 
-       ir_reserve_resources(irg, IR_RESOURCE_BLOCK_MARK | IR_RESOURCE_PHI_LIST);
-
        /* now more complicated cases: find control flow And/Or and optimize. */
+       ir_reserve_resources(irg, IR_RESOURCE_BLOCK_MARK | IR_RESOURCE_PHI_LIST);
        irg_walk_graph(irg, clear_block_infos, collect_phis, NULL);
        irg_block_walk_graph(irg, NULL, find_cf_and_or_walker, &env);
-
-       if (! env.changed) {
-               res |= IR_GRAPH_STATE_CONSISTENT_DOMINANCE;
-       }
-
        ir_free_resources(irg, IR_RESOURCE_BLOCK_MARK | IR_RESOURCE_PHI_LIST);
 
-       return res;
-}
-
-static optdesc_t opt_simplify_bool = {
-       "bool-simplification",
-       IR_GRAPH_STATE_ONE_RETURN, /* works better with one return block only */
-       do_simplify_bool,
-};
-
-void opt_bool(ir_graph *irg)
-{
-       perform_irg_optimization(irg, &opt_simplify_bool);
+       confirm_irg_properties(irg,
+               env.changed ? IR_GRAPH_PROPERTIES_NONE : IR_GRAPH_PROPERTIES_ALL);
 }
 
 /* Creates an ir_graph pass for opt_bool. */