This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: HI to SI mode miss conversion on MIPS.
Hi.
Is this fix acceptable?
Please install it to the main branch, if so.
---
Hiroyuki Machida
---
From: Hiroyuki Machida <machida@sm.sony.co.jp>
Subject: Re: HI to SI mode miss conversion on MIPS.
Date: Wed, 16 Feb 2000 13:56:30 +0900
Finally I found the problem the order of calling
set_nonzero_bits_and_sign_copies() at try_combine().
Attached is the patch to really fix the problem, I think.
:
:
2000-02-16 Hiroyuki Machida <machida@sm.sony.co.jp>
* combine.c (try_combine): Update reg_nonzero_bits of
newi2pat before newpat. Because reg_nonzero_bits of
newi2pat can affect reg_nonzero_bits of newpat.
*** combine.c.ORG Tue Jan 25 05:10:01 2000
--- combine.c Wed Feb 16 12:57:24 2000
*************** try_combine (i3, i2, i1)
*** 2665,2675 ****
}
/* Update reg_nonzero_bits et al for any changes that may have been made
! to this insn. */
!
! note_stores (newpat, set_nonzero_bits_and_sign_copies, NULL);
if (newi2pat)
note_stores (newi2pat, set_nonzero_bits_and_sign_copies, NULL);
/* If I3 is now an unconditional jump, ensure that it has a
BARRIER following it since it may have initially been a
--- 2665,2675 ----
}
/* Update reg_nonzero_bits et al for any changes that may have been made
! to this insn. The order of set_nonzero_bits_and_sign_copies() is
! important. Because newi2pat can affect nonzero_bits of newpat */
if (newi2pat)
note_stores (newi2pat, set_nonzero_bits_and_sign_copies, NULL);
+ note_stores (newpat, set_nonzero_bits_and_sign_copies, NULL);
/* If I3 is now an unconditional jump, ensure that it has a
BARRIER following it since it may have initially been a