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]

Re: 27 GCC regressions, 27 new, with your patch on 2002-05-22T02:09:06Z.


On Wed, May 22, 2002 at 07:56:38PM +0200, Zdenek Dvorak wrote:
> 2002-05-21  Richard Henderson  <rth@redhat.com>
> 
>         * flow.c (life_analysis): Fix test for deleted label.

It is this patch.  On closer analysis, the test is completely bogus.
I shouldn't have corrected it, but removed it.

The problem being that there may well be REG_LABEL notes referencing
deleted labels when said labels came from the &&label extension.


r~


        * flow.c (life_analysis): Delete broken reg_label check.

Index: flow.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/flow.c,v
retrieving revision 1.522
diff -c -p -d -r1.522 flow.c
*** flow.c	21 May 2002 22:35:04 -0000	1.522
--- flow.c	22 May 2002 20:27:29 -0000
*************** life_analysis (f, file, flags)
*** 485,504 ****
  
    free_basic_block_vars (1);
  
- #ifdef ENABLE_CHECKING
-   {
-     rtx insn;
- 
-     /* Search for any REG_LABEL notes which reference deleted labels.  */
-     for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
-       {
- 	rtx inote = find_reg_note (insn, REG_LABEL, NULL_RTX);
- 	if (inote && GET_CODE (XEXP (inote, 0)) != CODE_LABEL)
- 	  abort ();
-       }
-   }
- #endif
- 
    /* Removing dead insns should've made jumptables really dead.  */
    delete_dead_jumptables ();
  }
--- 485,490 ----
*************** propagate_block_delete_insn (insn)
*** 1556,1566 ****
       INSN may reference a deleted label, particularly when a jump
       table has been optimized into a direct jump.  There's no
       real good way to fix up the reference to the deleted label
!      when the label is deleted, so we just allow it here.
! 
!      After dead code elimination is complete, we do search for
!      any REG_LABEL notes which reference deleted labels as a
!      sanity check.  */
  
    if (inote && GET_CODE (inote) == CODE_LABEL)
      {
--- 1542,1548 ----
       INSN may reference a deleted label, particularly when a jump
       table has been optimized into a direct jump.  There's no
       real good way to fix up the reference to the deleted label
!      when the label is deleted, so we just allow it here.  */
  
    if (inote && GET_CODE (inote) == CODE_LABEL)
      {


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