diff options
author | Richard Biener <rguenther@suse.de> | 2013-11-27 15:18:23 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-11-27 15:18:23 +0000 |
commit | e9287a41dffc9e76dd80be4be75b0c3a58f57231 (patch) | |
tree | a420c4091323d45ede618fbe00f2bb1785f9edf6 /gcc/lto-streamer-in.c | |
parent | 3745a526d6e978059a3de751e302ecd2af88c0de (diff) | |
download | gcc-e9287a41dffc9e76dd80be4be75b0c3a58f57231.zip gcc-e9287a41dffc9e76dd80be4be75b0c3a58f57231.tar.gz gcc-e9287a41dffc9e76dd80be4be75b0c3a58f57231.tar.bz2 |
re PR middle-end/58723 (ICE in lto_output_edge, at lto-cgraph.c:300 for OpenMP's simd reduction)
2013-11-27 Richard Biener <rguenther@suse.de>
PR middle-end/58723
* cgraphbuild.c (build_cgraph_edges): Do not build edges
for internal calls.
(rebuild_cgraph_edges): Likewise.
* ipa-inline-analysis.c (estimate_function_body_sizes):
Skip internal calls.
* tree-inline.c (estimate_num_insns): Estimate size of internal
calls as 0.
(gimple_expand_calls_inline): Do not try inline-expanding
internal calls.
* lto-streamer-in.c (input_cfg): Stream loop safelen,
force_vect and simduid.
(input_struct_function_base): Stream has_force_vect_loops
and has_simduid_loops.
(input_function): Adjust.
* lto-streamer-out.c (output_cfg): Stream loop safelen,
force_vect and simduid.
(output_struct_function_base): Stream has_force_vect_loops
and has_simduid_loops.
From-SVN: r205447
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r-- | gcc/lto-streamer-in.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c index 333e815..c5cb23c 100644 --- a/gcc/lto-streamer-in.c +++ b/gcc/lto-streamer-in.c @@ -598,7 +598,8 @@ make_new_block (struct function *fn, unsigned int index) /* Read the CFG for function FN from input block IB. */ static void -input_cfg (struct lto_input_block *ib, struct function *fn, +input_cfg (struct lto_input_block *ib, struct data_in *data_in, + struct function *fn, int count_materialization_scale) { unsigned int bb_count; @@ -714,6 +715,11 @@ input_cfg (struct lto_input_block *ib, struct function *fn, loop->nb_iterations_estimate.high = streamer_read_hwi (ib); } + /* Read OMP SIMD related info. */ + loop->safelen = streamer_read_hwi (ib); + loop->force_vect = streamer_read_hwi (ib); + loop->simduid = stream_read_tree (ib, data_in); + place_new_loop (fn, loop); /* flow_loops_find doesn't like loops not in the tree, hook them @@ -877,6 +883,8 @@ input_struct_function_base (struct function *fn, struct data_in *data_in, fn->has_nonlocal_label = bp_unpack_value (&bp, 1); fn->calls_alloca = bp_unpack_value (&bp, 1); fn->calls_setjmp = bp_unpack_value (&bp, 1); + fn->has_force_vect_loops = bp_unpack_value (&bp, 1); + fn->has_simduid_loops = bp_unpack_value (&bp, 1); fn->va_list_fpr_size = bp_unpack_value (&bp, 8); fn->va_list_gpr_size = bp_unpack_value (&bp, 8); @@ -923,7 +931,7 @@ input_function (tree fn_decl, struct data_in *data_in, if (!node) node = cgraph_create_node (fn_decl); input_struct_function_base (fn, data_in, ib); - input_cfg (ib_cfg, fn, node->count_materialization_scale); + input_cfg (ib_cfg, data_in, fn, node->count_materialization_scale); /* Read all the SSA names. */ input_ssa_names (ib, data_in, fn); |