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] |
| Other format: | [Raw text] | |
> Index: gcc.fsf.42.ice1/gcc/cse.c
> ===================================================================
> --- gcc.fsf.42.ice1/gcc/cse.c (revision 122999)
> +++ gcc.fsf.42.ice1/gcc/cse.c (working copy)
> @@ -4542,6 +4542,14 @@ record_jump_equiv (rtx insn, int taken)
> op1 = fold_rtx (XEXP (XEXP (SET_SRC (set), 0), 1), insn);
>
> code = find_comparison_args (code, &op0, &op1, &mode0, &mode1);
> +
> + /* If the mode is VOIDmode or a MODE_CC mode, we don't know
> + what kinds of things are being compared, so we can't do
> + anything with this comparison. */
> +
> + if (mode0 == VOIDmode || GET_MODE_CLASS (mode0) == MODE_CC)
> + return;
I don't see any reason to kick out here if mode0 == VOIDmode. That
seems like an unlikely case, but it also seems like a case which we
can handle. This is not the same as the earlier call to
find_comparison_args.
I'll approve
if (GET_MODE_CLASS (mode0) == MODE_CC)
return;
if it fixes the bug and passes bootstrap and testing.
Thanks.
Ian
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |