Hi, You added some code to regrename in revision 1.28 for which I don't understand the need:
1.26 rth 1595: /* For each earlyclobber operand, zap the value data. */ 1596: for (i = 0; i < n_ops; i++) 1597: if (recog_op_alt[i][alt].earlyclobber) 1598: kill_value (recog_data.operand[i], vd); 1599: 1600: /* Within asms, a clobber cannot overlap inputs or outputs. 1601: I wouldn't think this were true for regular insns, but 1602: scan_rtx treats them like that... */ 1603: note_stores (PATTERN (insn), kill_clobbered_value, vd); 1604: 1605: /* Kill all auto-incremented values. */ 1606: /* ??? REG_INC is useless, since stack pushes aren't done that way. */ 1607: for_each_rtx (&PATTERN (insn), kill_autoinc_value, vd); 1.28 rth 1608: 1609: /* Kill all early-clobbered operands. */ 1610: for (i = 0; i < n_ops; i++) 1611: if (recog_op_alt[i][alt].earlyclobber) 1612: kill_value (recog_data.operand[i], vd); The stuff added in 1.28 (lines 1608-1612) to kill early-clobbered operands is precisely the same as what is done just a few lines earlier (lines 1595-1598). Is this a thinko or is this necessary for some non-obvious reason?? Gr. Steven