This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] PATCH to restore expand_decl changes lost in merge
- From: Jason Merrill <jason at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 04 Jun 2003 16:17:37 -0400
- Subject: [tree-ssa] PATCH to restore expand_decl changes lost in merge
Both of these changes had the misfortune to be next to changes brought over
from the trunk, and got discarded. The first one is particularly
important, as it means we don't have to allocate temp slots for most of
the GIMPLE temps. Temp slots are not our friends.
Testing now. I'll apply this to the tree-ssa branch if testing succeeds.
2003-06-04 Jason Merrill <jason@redhat.com>
* stmt.c (expand_decl): Fix merge error: again, put artificial
vars into registers even when not optimizing, and don't mark the
regs as user vars.
*** stmt.c.~1~ 2003-05-14 15:29:46.000000000 -0400
--- stmt.c 2003-06-04 16:10:06.000000000 -0400
*************** expand_decl (decl)
*** 3987,3993 ****
&& TREE_CODE (type) == REAL_TYPE)
&& ! TREE_THIS_VOLATILE (decl)
&& ! DECL_NONLOCAL (decl)
! && (DECL_REGISTER (decl) || optimize))
{
/* Automatic variable that can go in a register. */
int unsignedp = TREE_UNSIGNED (type);
--- 3987,3993 ----
&& TREE_CODE (type) == REAL_TYPE)
&& ! TREE_THIS_VOLATILE (decl)
&& ! DECL_NONLOCAL (decl)
! && (DECL_REGISTER (decl) || DECL_ARTIFICIAL (decl) || optimize))
{
/* Automatic variable that can go in a register. */
int unsignedp = TREE_UNSIGNED (type);
*************** expand_decl (decl)
*** 3996,4002 ****
SET_DECL_RTL (decl, gen_reg_rtx (reg_mode));
! mark_user_reg (DECL_RTL (decl));
if (POINTER_TYPE_P (type))
mark_reg_pointer (DECL_RTL (decl),
--- 3996,4003 ----
SET_DECL_RTL (decl, gen_reg_rtx (reg_mode));
! if (!DECL_ARTIFICIAL (decl))
! mark_user_reg (DECL_RTL (decl));
if (POINTER_TYPE_P (type))
mark_reg_pointer (DECL_RTL (decl),