This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
- From: Falk Hueffner <falk dot hueffner at student dot uni-tuebingen dot de>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org, bfkelly at nsa dot gov
- Date: 14 Feb 2003 23:31:11 +0100
- Subject: Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
- References: <87el6btdr1.fsf@student.uni-tuebingen.de><20030214222652.GA1135@redhat.com>
Richard Henderson <rth@redhat.com> writes:
> On Fri, Feb 14, 2003 at 10:25:54AM +0100, Falk Hueffner wrote:
> > * reload1.c (reload_cse_simplify_set): Honor
> > CANNOT_CHANGE_MODE_CLASS.
>
> Applied to mainline.
Thanks.
> I'm fairly certain that the exact form of this macro was different
> in both 3.3 and 3.2. Would you generate and test patches for these
> branches?
I have this patch for 3.2. I'll check out 3.3.
--
Falk
--- reload1.c.orig 2003-02-14 22:34:42.000000000 +0100
+++ reload1.c 2003-02-14 22:31:14.000000000 +0100
@@ -8277,7 +8277,14 @@
{
#ifdef LOAD_EXTEND_OP
if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD
- && extend_op != NIL)
+ && extend_op != NIL
+#ifdef CLASS_CANNOT_CHANGE_MODE
+ && !(REGNO_REG_CLASS (REGNO (SET_DEST (set)))
+ == CLASS_CANNOT_CHANGE_MODE
+ && CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SET_DEST (set)),
+ word_mode))
+#endif
+ )
{
rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set)));
ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set));