From 5dac1dae252d793ea9f112f1e1a7b9415c184cc8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 18 Oct 2011 17:33:12 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/function.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index adb90666f17..337c6a4643d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-10-18 Jakub Jelinek + + 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 * config.host (arm*-*-linux*): Add driver-arm.o and x-arm. diff --git a/gcc/function.c b/gcc/function.c index c3702fb3419..dc1684a6128 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -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 { -- 2.30.2