aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Conner <jconner@apple.com>2006-09-20 18:57:46 +0000
committerJosh Conner <jconner@gcc.gnu.org>2006-09-20 18:57:46 +0000
commit1186ec8cd675cc81ec9029547cba5011e402965e (patch)
tree6af89f21d0a45beb737985ed8cc0c6c0a125788a
parentf803131233dff2233e8feeefa6c84bbb574bcd94 (diff)
downloadgcc-1186ec8cd675cc81ec9029547cba5011e402965e.zip
gcc-1186ec8cd675cc81ec9029547cba5011e402965e.tar.gz
gcc-1186ec8cd675cc81ec9029547cba5011e402965e.tar.bz2
re PR middle-end/25505 (gcc uses way too much stack space for this code)
2006-09-20 Josh Conner <jconner@apple.com> PR middle-end/25505 * calls.c (expand_call): Allow reuse of structure return stack temp. From-SVN: r117091
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/calls.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad2001e..3e9a2d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-20 Josh Conner <jconner@apple.com>
+
+ PR middle-end/25505
+ * calls.c (expand_call): Allow reuse of structure return stack
+ temp.
+
2006-09-20 Paul Brook <paul@codesourcery.com>
* config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
diff --git a/gcc/calls.c b/gcc/calls.c
index 7c71eed..b6f57df 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1985,7 +1985,7 @@ expand_call (tree exp, rtx target, int ignore)
/* For variable-sized objects, we must be called with a target
specified. If we were to allocate space on the stack here,
we would have no way of knowing when to free it. */
- rtx d = assign_temp (TREE_TYPE (exp), 1, 1, 1);
+ rtx d = assign_temp (TREE_TYPE (exp), 0, 1, 1);
mark_temp_addr_taken (d);
structure_value_addr = XEXP (d, 0);