On Tue, Nov 19, 2013 at 6:22 PM, Richard Earnshaw wrote: >>> as a single-set insn (since the other operand, y, is not used) and >>> replaces a use of x with a use of y. However, it fails to take into >>> account that y has been clobbered in the insn itself. >> >> Ah, wait. Incorrect use of single_set(). >> >> Try >> ------ >> } >> >> - set = single_set (insn); >> + set = multiple_sets (insn) ? NULL_RTX : single_set (insn); >> extract_insn (insn); >> if (! constrain_operands (1)) >> fatal_insn_not_found (insn); >> preprocess_constraints (); >> ------ ... > That won't handle > > parallel [ (set (x) (y)) > (clobber (y))]
Doesn't have to, AFAICT. y will be killed via kill_clobbered_value. Ciao! Steven