aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@gmail.com>2007-01-01 13:58:19 -0800
committerAndrew Pinski <pinskia@gcc.gnu.org>2007-01-01 13:58:19 -0800
commita441d616bac764a9281f72f04812ff9518a7e5ce (patch)
treecbad9e8ca49c7cbc6580372a73e4a91a61c54c7c
parent95e2a53bfc973093444255c95bb79df8ff124f18 (diff)
downloadgcc-a441d616bac764a9281f72f04812ff9518a7e5ce.zip
gcc-a441d616bac764a9281f72f04812ff9518a7e5ce.tar.gz
gcc-a441d616bac764a9281f72f04812ff9518a7e5ce.tar.bz2
gimplify.c (gimplify_return_expr): Make the temporary variable for the return expression, a gimple register variable.
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gimplify.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5671e01..69fe089 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 9774530..1a40e8f 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -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