convenience function to see if mux gets optimized away
[libfirm] / ir / be / bemain.c
index d02d543..28f6c39 100644 (file)
@@ -413,10 +413,6 @@ static void initialize_birg(be_irg_t *birg, ir_graph *irg, be_main_env_t *env)
        /* set the current graph (this is important for several firm functions) */
        current_ir_graph = irg;
 
-       /* For code generation all unreachable code and Bad nodes should be gone */
-       remove_unreachable_code(irg);
-       remove_bads(irg);
-
        /* we do this before critical edge split. As this produces less returns,
           because sometimes (= 164.gzip) multiple returns are slower */
        normalize_n_returns(irg);
@@ -424,6 +420,10 @@ static void initialize_birg(be_irg_t *birg, ir_graph *irg, be_main_env_t *env)
        /* Remove critical edges */
        remove_critical_cf_edges_ex(irg, /*ignore_exception_edges=*/0);
 
+       /* For code generation all unreachable code and Bad nodes should be gone */
+       remove_unreachable_code(irg);
+       remove_bads(irg);
+
        /* Ensure, that the ir_edges are computed. */
        edges_assure(irg);