[PATCH 0/5] LRA fixes for MIPS-like targets
Matthew Fortune
Matthew.Fortune@imgtec.com
Tue Feb 7 14:09:00 GMT 2017
Hi,
This patch series addresses a variety of issues in LRA that the MIPS
target has exposed but are not specific to MIPS.
The fixes are primarily related to how WORD_REGISTER_OPERATIONS needs
to be accounted for in LRA SUBREG reloading. In almost all cases LRA
needs to reload the inner REG/MEM/PLUS rather than simplify to use
the outer mode. Following detailed analysis of the code in
simplify_operand_subreg there is scope for various improvements around
this area. These changes will however be far too invasive for GCC 7 in
stage 4.
Notes on the current implementation are here:
https://gcc.gnu.org/ml/gcc/2017-02/msg00000.html
Background discussion on the fixes is here:
https://gcc.gnu.org/ml/gcc/2017-01/msg00130.html
Original bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78660
Some fixes made in this series are written to ensure safety and minimize
impact. As such further changes including reworking the fixes are
likely but as part of GCC 8 development.
This whole patch series has been run through bootstrap and regression
test on mips64el-linux-gnu.
@Vladimir: Although you have given approval in principle to some of these
already please could you double check as I have added comments in some
cases. Patch 5 has not been posted before in any form.
@Eric: thanks for the offer of sparc testing; please can you let me know
if there are any issues?
I'm running x86_64 testing too but most of the code won't trigger there
as it is not a WORD_REGISTER_OPERATIONS target. If anyone can give
a recipe for bootstrapping ARM on a compile farm machine I will do that
but I have no idea how to get the ARM multiarch stuff to work in Ubuntu.
Thanks,
Matthew
Matthew Fortune (4):
Handle WORD_REGISTER_OPERATIONS when reloading (subreg (reg))
Tighten condition for converting SUBREG reloads from OP_OUT to
OP_INOUT
Support WORD_REGISTER_OPERATIONS requirements in
simplify_operand_subreg
Partial revert of r243782 to restore previous behavior
Robert Suchanek (1):
Ensure the mode used to create split registers is suppported
gcc/lra-constraints.c | 61 ++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 53 insertions(+), 8 deletions(-)
--
2.2.1
More information about the Gcc-patches
mailing list