Commit f301837e by Eric Botcazou Committed by Eric Botcazou

gimplify.c (gimplify_init_constructor): Do a block move for very small objects as well.

	* gimplify.c (gimplify_init_constructor): Do a block move for very
	small objects as well.

From-SVN: r187498
parent aa44c80c
2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
* gimplify.c (gimplify_init_constructor): Do a block move for very
small objects as well.
2012-05-15 Bernd Schmidt <bernds@codesourcery.com>
* ira.c (find_moveable_pseudos): Skip registers whose
......
......@@ -4033,9 +4033,13 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
else
align = TYPE_ALIGN (type);
/* Do a block move either if the size is so small as to make
each individual move a sub-unit move on average, or if it
is so large as to make individual moves inefficient. */
if (size > 0
&& num_nonzero_elements > 1
&& !can_move_by_pieces (size, align))
&& (size < num_nonzero_elements
|| !can_move_by_pieces (size, align)))
{
if (notify_temp_creation)
return GS_ERROR;
......
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