Message ID | 20140203095648.GA55784@msticlxl7.ims.intel.com |
---|---|
State | New |
Headers | show |
Hi! On Mon, 3 Feb 2014 13:56:48 +0400, Ilya Tocar <tocarip.intel@gmail.com> wrote: > > In r207132, I have now committed a merge of trunk r206958 (2014-01-23). > > Compared to a pristine trunk r206958 build, there is one regression: > > > > FAIL: g++.dg/gomp/declare-simd-1.C -std=c++98 (internal compiler error) > > FAIL: g++.dg/gomp/declare-simd-1.C -std=c++11 (internal compiler error) > Sorry for the delay, i was busy with AVX512. No problem. > I finally had time to look into this bug. > The problem in r205214 was in adding add_new_function hook in > inline_generate_summary with -O0 -fopenmp and not removing it, > before running expand_simd_clones. > I've changed inline_free_summary to always remove hooks. > Patch bellow. It bootstraps, passes make check, fixes declare-simd-1.C. > Ok for gomp4 branch? Thanks, and yes, please commit. Grüße, Thomas
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index d4abd90..440ae79 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -4143,11 +4143,6 @@ void inline_free_summary (void) { struct cgraph_node *node; - if (!inline_edge_summary_vec.exists ()) - return; - FOR_EACH_DEFINED_FUNCTION (node) - if (!node->alias) - reset_inline_summary (node); if (function_insertion_hook_holder) cgraph_remove_function_insertion_hook (function_insertion_hook_holder); function_insertion_hook_holder = NULL; @@ -4162,6 +4157,11 @@ inline_free_summary (void) node_duplication_hook_holder = NULL; if (edge_duplication_hook_holder) cgraph_remove_edge_duplication_hook (edge_duplication_hook_holder); + if (!inline_edge_summary_vec.exists ()) + return; + FOR_EACH_DEFINED_FUNCTION (node) + if (!node->alias) + reset_inline_summary (node); edge_duplication_hook_holder = NULL; vec_free (inline_summary_vec); inline_edge_summary_vec.release ();