have you check the perf implications? Or code size etc? Your change seemed quite conservative Sun
2011/6/25 "C. Bergström" <cbergst...@pathscale.com>: > > > I'll fix the paths and whitespace before pushing, but can someone review > this rough draft patch. > > > test.cxx > ----------- > > static void foo() {} > > int main() { > try { > } > catch(...) { > foo(); > } > return 0; > } > > ------------------ > > diff --git a/GCC/gcc/passes.c b/GCC/gcc/passes.c > index b533607..ae41901 100644 > --- a/GCC/gcc/passes.c > +++ b/GCC/gcc/passes.c > @@ -472,7 +472,7 @@ init_optimization_passes (void) > /* All passes needed to lower the function into shape optimizers can > operate on. */ > p = &all_lowering_passes; > - NEXT_PASS (pass_remove_useless_stmts); > + > NEXT_PASS (pass_mudflap_1); > NEXT_PASS (pass_lower_omp); > NEXT_PASS (pass_lower_cf); > diff --git a/GCC/gcc/tree-cfg.c b/GCC/gcc/tree-cfg.c > index b280027..59a84ea 100644 > --- a/GCC/gcc/tree-cfg.c > +++ b/GCC/gcc/tree-cfg.c > @@ -602,7 +602,7 @@ make_edges (void) > fold_cond_expr_cond (); > > /* Clean up the graph and warn for unreachable code. */ > - cleanup_tree_cfg (); > + > } > > > diff --git a/GCC/gcc/tree-eh.c b/GCC/gcc/tree-eh.c > index d14e1ee..f17cce1 100644 > --- a/GCC/gcc/tree-eh.c > +++ b/GCC/gcc/tree-eh.c > @@ -1372,7 +1372,7 @@ lower_try_finally (struct leh_state *state, tree *tp) > > /* Determine if any exceptions are possible within the try block. */ > if (using_eh_for_cleanups_p) > - this_tf.may_throw = get_eh_region_may_contain_throw (this_tf.region); > + this_tf.may_throw = true; > if (this_tf.may_throw) > { > this_tf.eh_label = create_artificial_label (); > @@ -1445,12 +1445,6 @@ lower_catch (struct leh_state *state, tree *tp) > > lower_eh_constructs_1 (&this_state, &TREE_OPERAND (*tp, 0)); > > - if (!get_eh_region_may_contain_throw (try_region)) > - { > - *tp = TREE_OPERAND (*tp, 0); > - return; > - } > - > out_label = NULL; > for (i = tsi_start (TREE_OPERAND (*tp, 1)); !tsi_end_p (i); ) > { > @@ -1512,12 +1506,6 @@ lower_eh_filter (struct leh_state *state, tree *tp) > > lower_eh_constructs_1 (&this_state, &TREE_OPERAND (*tp, 0)); > > - if (!get_eh_region_may_contain_throw (this_region)) > - { > - *tp = TREE_OPERAND (*tp, 0); > - return; > - } > - > lower_eh_constructs_1 (state, &EH_FILTER_FAILURE (inner)); > TREE_OPERAND (*tp, 1) = EH_FILTER_FAILURE (inner); > > @@ -1551,12 +1539,6 @@ lower_cleanup (struct leh_state *state, tree *tp) > > lower_eh_constructs_1 (&this_state, &TREE_OPERAND (*tp, 0)); > > - if (!get_eh_region_may_contain_throw (this_region)) > - { > - *tp = TREE_OPERAND (*tp, 0); > - return; > - } > - > /* Build enough of a try-finally state so that we can reuse > honor_protect_cleanup_actions. */ > memset (&fake_tf, 0, sizeof (fake_tf)); > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense.. > http://p.sf.net/sfu/splunk-d2d-c1 > _______________________________________________ > Open64-devel mailing list > Open64-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/open64-devel > ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense.. http://p.sf.net/sfu/splunk-d2d-c1 _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel