On 12/20/13 13:44, Jeff Law wrote:
On 12/20/13 10:25, Jakub Jelinek wrote:
Yes.  So my suggestion actually was not correct for that:
   && !reg_overlap_mentioned_p (dest, XEXP (src, 0))
because the first extension above has r1:SI and r2:DI which don't
overlap, only r1:DI and r2:DI overlap.  So it probably should be checked
in combine_reaching_defs instead where you have already both the
registers
in the right modes available and can call reg_overlap_mentioned_p on them
directly.  One argument would be SET_DEST (def_insn) and one SET_DEST
(cand->insn), right?
Here's the updated version.

1. Minor test tweak per Uros's suggestion.
2. Fix formatting
3. Add testing for two destinations overlapping per above.

Bootstrapped and regression tested on x86_64-unknown-linux-gnu.  Ok for
the trunk?
Committed after private email approval from Jakub. I made one additional trivial change (missing whitespace in a comment).

jeff

Reply via email to