Commit bee0b10c by Richard Biener Committed by Richard Biener

re PR tree-optimization/57349 (ICE on 253.perlbmk with pgo after r198096)

2013-05-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/57349
	* profile.c (branch_prob): Do not split blocks that are
	abnormally receiving from ECF_RETURNS_TWICE functions.

From-SVN: r199193
parent bf7a73f9
2013-05-22 Richard Biener <rguenther@suse.de>
PR middle-end/57349
* profile.c (branch_prob): Do not split blocks that are
abnormally receiving from ECF_RETURNS_TWICE functions.
2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
* recog.c (offsettable_address_addr_space_p): Fix calculation of
......
......@@ -1085,18 +1085,20 @@ branch_prob (void)
or __builtin_setjmp_dispatcher calls. These are very
special and don't expect anything to be inserted before
them. */
if (!is_gimple_call (first)
|| (fndecl = gimple_call_fndecl (first)) == NULL
|| DECL_BUILT_IN_CLASS (fndecl) != BUILT_IN_NORMAL
|| (DECL_FUNCTION_CODE (fndecl) != BUILT_IN_SETJMP_RECEIVER
&& (DECL_FUNCTION_CODE (fndecl)
!= BUILT_IN_SETJMP_DISPATCHER)))
{
if (dump_file)
fprintf (dump_file, "Splitting bb %i after labels\n",
bb->index);
split_block_after_labels (bb);
}
if (is_gimple_call (first)
&& (((fndecl = gimple_call_fndecl (first)) != NULL
&& DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL
&& (DECL_FUNCTION_CODE (fndecl)
== BUILT_IN_SETJMP_RECEIVER
|| (DECL_FUNCTION_CODE (fndecl)
== BUILT_IN_SETJMP_DISPATCHER)))
|| gimple_call_flags (first) & ECF_RETURNS_TWICE))
continue;
if (dump_file)
fprintf (dump_file, "Splitting bb %i after labels\n",
bb->index);
split_block_after_labels (bb);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment