Vladimir Makarov <vmaka...@redhat.com> writes: > After committing a patch yesterday to implement proposals from a > review, I found that GCC crashes on SPEC2000 gap. LRA is trying to find > a mode of operand (const_int 1) in *lea_general_1 insn and can not find > it as the operand and insn template operand has VOIDmode. > > There are still cases when context lookup is necessary to find a mode of > the operand. So I am reversing the change I did yesterday. > > The patch is committed as rev. 192462. > > 2012-10-15 Vladimir Makarov <vmaka...@redhat.com> > > * lra-int.h (lra_get_mode): Remove. > * lra-constraints.c (find_mode, get_op_mode): New functions. > (match_reload): Use get_op_mode instead of lra_get_mode. > (process_alt_operands, curr_insn_transform): Ditto.
But my objection to this code still stands. It's wrong to assume that an operand to an rtx has the same mode as the containing rtx. Please add a testcase that shows the problem. Richard