]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/50735 (gcc.dg/torture/vector-2.c:52:1: ICE: verify_ssa failed...
authorJakub Jelinek <jakub@redhat.com>
Tue, 18 Oct 2011 15:33:12 +0000 (17:33 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 18 Oct 2011 15:33:12 +0000 (17:33 +0200)
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
gcc/function.c

index adb90666f17b65a211b775d1fa9f1db52b139663..337c6a4643dc91c9688c13cc91cd7b11e6b64312 100644 (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.
index c3702fb3419fbfe1325decc611aa09f8c81c623f..dc1684a612867d087fecb402ef346fa188ee3d3a 100644 (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
                {