This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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),

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]