re PR tree-optimization/50735 (gcc.dg/torture/vector-2.c:52:1: ICE: verify_ssa failed at -O1 and above)

PR tree-optimization/50735
	* function.c (gimplify_parameters): Use create_tmp_var instead of
	create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
	or vector type, set DECL_GIMPLE_REG_P.

From-SVN: r180154
This commit is contained in:
Jakub Jelinek 2011-10-18 17:33:12 +02:00 committed by Jakub Jelinek
parent 1b688c0e01
commit 5dac1dae25
2 changed files with 11 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2011-10-18 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/50735
* function.c (gimplify_parameters): Use create_tmp_var instead of
create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex
or vector type, set DECL_GIMPLE_REG_P.
2011-10-18 Andrew Stubbs <ams@codesourcery.com>
* config.host (arm*-*-linux*): Add driver-arm.o and x-arm.

View File

@ -3617,7 +3617,7 @@ gimplify_parameters (void)
&& compare_tree_int (DECL_SIZE_UNIT (parm),
STACK_CHECK_MAX_VAR_SIZE) > 0))
{
local = create_tmp_reg (type, get_name (parm));
local = create_tmp_var (type, get_name (parm));
DECL_IGNORED_P (local) = 0;
/* If PARM was addressable, move that flag over
to the local copy, as its address will be taken,
@ -3625,6 +3625,9 @@ gimplify_parameters (void)
as we'll query that flag during gimplification. */
if (TREE_ADDRESSABLE (parm))
TREE_ADDRESSABLE (local) = 1;
else if (TREE_CODE (type) == COMPLEX_TYPE
|| TREE_CODE (type) == VECTOR_TYPE)
DECL_GIMPLE_REG_P (local) = 1;
}
else
{