On 11/26/14 15:00, Andrew Pinski wrote:
Hi,
   The problem here is lra_substitute_pseudo calls gen_rtx_SUBREG with
a VOIDmode (const_int) argument but really it should not be calling
gen_rtx_SUBREG directly instead it should be using
gen_lowpart_if_possible.  This patch fixes that and adds a testcase
that had happened on x86_64.

OK? I bootstrapped and tested this on both aarch64-linux-gnu and
x86_64-linux-gnu with no regression on either.

Thanks,
Andrew Pinski

ChangeLog:
         * lra.c (lra_substitute_pseudo): Use gen_lowpart_if_possible
         instead of gen_rtx_SUBREG/gen_lowpart_SUBREG.
Does gen_lowpart_if_possible handle paradoxical subregs which appear to be what Vlad's trying to handle in the true arm of the code you're changing.

What happens if gen_lowpart_if_possible returns NULL?  Worth an assert?

jeff

Reply via email to