This is the mail archive of the gcc-prs@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]

Re: optimization/732: Code generation bug on alpha 21264 at -O2


The following reply was made to PR optimization/732; it has been noted by GNATS.

From: Brad Lucier <lucier@math.purdue.edu>
To: gcc-patches@gcc.gnu.org
Cc: gcc-gnats@gcc.gnu.org, lucier@math.purdue.edu
Subject: Re: optimization/732: Code generation bug on alpha 21264 at -O2
Date: Thu, 9 Nov 2000 16:15:55 -0500 (EST)

 I'm trying to track down the reason for the failure
 
 http://gcc.gnu.org/ml/gcc-prs/2000-q4/msg00208.html
 
 which doesn't happen with gcc-2.95.1, so I'm looking through the
 record of patches for gcse.c.
 
 There is this patch:
 
 Revision 1.79 / (download) - annotate - [select for diffs] , Tue Feb 29 20:08:52 2000 UTC (8 months, 1 week ago) by kenner 
 Branch: MAIN 
 Changes since 1.78: +833 -960 lines
 Diff to previous 1.78 (colored) 
 
         * gcse.c: Cleanups throughout: mostly white-space, but also
         some minor rearrangement of code.
 
 
 which makes the following change (among many others):
 
 The new code (which remains in gcse.c) is:
 
 /* Called from compute_sets via note_stores to handle one SET or CLOBBER in
    an insn.  The DATA is really the instruction in which the SET is
    occurring.  */
 
 static void
 record_set_info (dest, setter, data)
      rtx dest, setter ATTRIBUTE_UNUSED;
      void *data;
 {
   rtx record_set_insn = (rtx) data;
 
   if (GET_CODE (dest) == REG && REGNO (dest) >= FIRST_PSEUDO_REGISTER)
     record_one_set (REGNO (dest), record_set_insn);
 }
 
 The previous code was:
 
 /* Called from compute_sets via note_stores to handle one
    SET or CLOBBER in an insn.  The DATA is really the instruction
    in which the SET is occurring.  */
 
 static void
 record_set_info (dest, setter, data)
      rtx dest, setter ATTRIBUTE_UNUSED;
      void *data;
 {
   rtx record_set_insn = (rtx) data;
 
   if (GET_CODE (dest) == SUBREG)
     dest = SUBREG_REG (dest);
 
   if (GET_CODE (dest) == REG)
     {
       if (REGNO (dest) >= FIRST_PSEUDO_REGISTER)
         record_one_set (REGNO (dest), record_set_insn);
     }
 }
 
 
 So the new code doesn't deal with SUBREGs.
 
 Is this correct?
 
 Brad Lucier

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