On Mon, Dec 1, 2014 at 10:26 AM, Jeff Law <l...@redhat.com> wrote: > 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?
This change is no longer needed as Vlad fixed the issue a different way: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=218171 Thanks, Andrew > > jeff >