This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: gcse.c patch breaks simd-2.c
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, roger at www dot eyesopen dot com
- Cc: aldyh at redhat dot com, geoffk at geoffk dot com, dje at watson dot ibm dot com
- Date: Wed, 9 Apr 2003 22:27:02 -0400 (EDT)
- Subject: Re: gcse.c patch breaks simd-2.c
Hi Roger,
> and/or (2) add support for ZERO_EXTRACT and SIGN_EXTRACT to the function
> reg_overlap_mentioned_p on line 1570 of rtlanal.c. This function
FWIW, in trying to get 3.3 working on the VAX, I found that I needed
to add ZERO_EXTRACT to reg_overlap_mentioned_p. The vax has a couple
of machine instructions which require this although it obviously
doesn't support the vector modes that are the subject of this discussion.
Dave
--
J. David Anglin dave dot anglin at nrc-cnrc dot gc dot ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
Index: rtlanal.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/rtlanal.c,v
retrieving revision 1.143
diff -u -3 -p -r1.143 rtlanal.c
--- rtlanal.c 8 Jan 2003 11:20:19 -0000 1.143
+++ rtlanal.c 10 Jan 2003 23:02:48 -0000
@@ -1635,6 +1635,11 @@ reg_overlap_mentioned_p (x, in)
return 0;
}
+ case ZERO_EXTRACT:
+ return (reg_overlap_mentioned_p (XEXP (x, 0), in)
+ || reg_overlap_mentioned_p (XEXP (x, 1), in)
+ || reg_overlap_mentioned_p (XEXP (x, 2), in));
+
default:
break;
}