re PR middle-end/25505 (gcc uses way too much stack space for this code)
authorJosh Conner <jconner@apple.com>
Wed, 20 Sep 2006 18:57:46 +0000 (18:57 +0000)
committerJosh Conner <jconner@gcc.gnu.org>
Wed, 20 Sep 2006 18:57:46 +0000 (18:57 +0000)
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

gcc/ChangeLog
gcc/calls.c

index ad2001ec1aacdbdfac4703b3b5706d0dd8c593e5..3e9a2d0d1e1fce626f73ff8a85e5a5594f8ad4c1 100644 (file)
@@ -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
index 7c71eed0502a44ee7c296c34da5b1ec4691aaf99..b6f57df78c1a602792ce2be1c08cc195eb0972ad 100644 (file)
@@ -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);