[PR87874] avoid const-wide-int subreg in LRA
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 7 Nov 2018 06:25:30 +0000 (06:25 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 7 Nov 2018 06:25:30 +0000 (06:25 +0000)
commit59193b1bdf0b0d707d3a21b006d3cb9d3fec7013
treebaa2a3a8ccecccdcb8110541d7a9f419fc409709
parent513c11068ff08576975039c37d6d6f7192f8f190
[PR87874] avoid const-wide-int subreg in LRA

Just like CONST_INT, CONST_WIDE_INT is VOIDmode, so LRA might be
tempted to build a SUBREG to "convert" it to the wanted mode.  That's
no use.  Test for CONST_SCALAR_INT_P instead of CONST_INT_P so that we
skip the subreg creation for both.

for  gcc/ChangeLog

PR rtl-optimization/87874
* lra.c (lra_substitute_pseudo): Do not create a subreg for
const wide ints.

for  gcc/testsuite/ChangeLog

PR rtl-optimization/87874
* gcc.dg/pr87874.c: New.

From-SVN: r265860
gcc/ChangeLog
gcc/lra.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr87874.c [new file with mode: 0644]