On 01/17/14 14:51, Jeff Law wrote:
Anyway, I clearly need to rethink that test. Given this is something we haven't seen in the wild, I'm going to disable it over the weekend/monday so that enable-checking bugs pass and continue to ponder.
And the patch which disables the test.
jeff
commit 78f81be0894b38090cd6280f1e303610434d75c5 Author: Jeff Law <l...@redhat.com> Date: Thu Jan 16 14:23:15 2014 -0700 * ree.c (combine_set_extension): Temporarily disable test for changing number of hard registers. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 37023c8..fabe408 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-01-17 Jeff Law <l...@redhat.com> + + * ree.c (combine_set_extension): Temporarily disable test for + changing number of hard registers. + 2014-01-17 Jan Hubicka <j...@suse.cz> PR middle-end/58125 diff --git a/gcc/ree.c b/gcc/ree.c index 19d821c..421eb6c 100644 --- a/gcc/ree.c +++ b/gcc/ree.c @@ -297,11 +297,15 @@ combine_set_extension (ext_cand *cand, rtx curr_insn, rtx *orig_set) else new_reg = gen_rtx_REG (cand->mode, REGNO (SET_DEST (*orig_set))); +#if 0 + /* Rethinking test. Temporarily disabled. */ /* We're going to be widening the result of DEF_INSN, ensure that doing so doesn't change the number of hard registers needed for the result. */ if (HARD_REGNO_NREGS (REGNO (new_reg), cand->mode) - != HARD_REGNO_NREGS (REGNO (orig_src), GET_MODE (SET_DEST (*orig_set)))) + != HARD_REGNO_NREGS (REGNO (SET_DEST (*orig_set)), + GET_MODE (SET_DEST (*orig_set)))) return false; +#endif /* Merge constants by directly moving the constant into the register under some conditions. Recall that RTL constants are sign-extended. */