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]

Re: ix86_expand_setcc to clear + set strict_low_part


On Jan 10, 2000, Richard Henderson <rth@cygnus.com> wrote:

> On Mon, Jan 10, 2000 at 07:36:30AM -0200, Alexandre Oliva wrote:

>> * resource.c (find_basic_block): Get basic-block number from
>> NOTE_INSN_BASIC_BLOCKs.

> No.  We went through this a month or two ago.  

Sorry, I must have missed that discussion.

>> (mark_referenced_resources): Mark a set strict_low_part as used.

> This part is nearly ok, and will probably cure the problem all on its own.

Indeed, it seems to have done it.  Is it ok to check in the following
revised patch?

Index: gcc/ChangeLog
from  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>, Richard Henderson  <rth@cygnus.com>
	
	* resource.c (mark_referenced_resources): Mark a set strict_low_part
	as used.
	* config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
	strict_low_part when possible.
	
Index: gcc/resource.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/resource.c,v
retrieving revision 1.23
diff -u -r1.23 resource.c
--- gcc/resource.c	2000/01/11 00:12:38	1.23
+++ gcc/resource.c	2000/01/11 23:30:14
@@ -272,7 +272,9 @@ mark_referenced_resources (x, res, inclu
       mark_referenced_resources (SET_SRC (x), res, 0);
 
       x = SET_DEST (x);
-      if (GET_CODE (x) == SIGN_EXTRACT || GET_CODE (x) == ZERO_EXTRACT)
+      if (GET_CODE (x) == SIGN_EXTRACT
+	  || GET_CODE (x) == ZERO_EXTRACT
+	  || GET_CODE (x) == STRICT_LOW_PART)
 	mark_referenced_resources (x, res, 0);
       else if (GET_CODE (x) == SUBREG)
 	x = SUBREG_REG (x);
Index: gcc/config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.c,v
retrieving revision 1.118
diff -u -p -r1.118 i386.c
--- gcc/config/i386/i386.c	2000/01/04 14:44:03	1.118
+++ gcc/config/i386/i386.c	2000/01/10 09:34:23
@@ -4340,8 +4340,6 @@ ix86_expand_setcc (code, unordered, dest
   */
 
   type = 0;
-  /* %%% reload problems with in-out.  Revisit.  */
-  type = 1;
 
   if (GET_MODE (dest) == QImode)
     type = 2;

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
oliva@{lsd.ic.unicamp.br,guarana.{org,com}} aoliva@{acm,computer}.org
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
** I may forward mail about projects to mailing lists; please use them

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