]> gcc.gnu.org Git - gcc.git/commitdiff
gimplify.c (gimplify_return_expr): Make the temporary variable for the return express...
authorAndrew Pinski <pinskia@gmail.com>
Mon, 1 Jan 2007 21:58:19 +0000 (13:58 -0800)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Mon, 1 Jan 2007 21:58:19 +0000 (13:58 -0800)
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        * gimplify.c (gimplify_return_expr): Make the temporary variable
        for the return expression, a gimple register variable.

From-SVN: r120317

gcc/ChangeLog
gcc/gimplify.c

index 5671e0161cb7281612d4b1999ef44371dd661624..69fe0892694ff9de2dc643e5ccbfda9a7c3df7a3 100644 (file)
@@ -1,3 +1,8 @@
+2007-01-01  Andrew Pinski  <pinskia@gmail.com>
+
+       * gimplify.c (gimplify_return_expr): Make the temporary variable
+       for the return expression, a gimple register variable.
+
 2007-01-01  Jan Hubicka  <jh@suse.cz>
 
        * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
index 97745309e98f6d6db61ec9e2b4e7d7ec4e44fa44..1a40e8fe2142197201c84a87ecd932f76090803e 100644 (file)
@@ -1,6 +1,7 @@
 /* Tree lowering pass.  This pass converts the GENERIC functions-as-trees
    tree representation into the GIMPLE form.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
+   Free Software Foundation, Inc.
    Major work done by Sebastian Pop <s.pop@laposte.net>,
    Diego Novillo <dnovillo@redhat.com> and Jason Merrill <jason@redhat.com>.
 
@@ -1171,6 +1172,9 @@ gimplify_return_expr (tree stmt, tree *pre_p)
   else
     {
       result = create_tmp_var (TREE_TYPE (result_decl), NULL);
+      if (TREE_CODE (TREE_TYPE (result)) == COMPLEX_TYPE
+          || TREE_CODE (TREE_TYPE (result)) == VECTOR_TYPE)
+        DECL_GIMPLE_REG_P (result) = 1;
 
       /* ??? With complex control flow (usually involving abnormal edges),
         we can wind up warning about an uninitialized value for this.  Due
This page took 0.07317 seconds and 5 git commands to generate.