RE: [PATCH 0/5] LRA fixes for MIPS-like targets

2017-02-08 Thread Matthew Fortune
Eric Botcazou  writes:
> > @Eric: thanks for the offer of sparc testing; please can you let me
> > know if there are any issues?
> 
> Sure, but can you post a consolidated patch as an attachment? (btw it's
> SPARC instead of sparc, like MIPS instead of mips I presume).

I've attached the consolidated patch. Apologies about capitalisation, I
normally try to get them right everywhere just slipped here.

Thanks,
Matthew




combined_lra_fix.patch
Description: combined_lra_fix.patch


Re: [PATCH 0/5] LRA fixes for MIPS-like targets

2017-02-08 Thread Eric Botcazou
> @Eric: thanks for the offer of sparc testing; please can you let me know
> if there are any issues?

Sure, but can you post a consolidated patch as an attachment? (btw it's SPARC 
instead of sparc, like MIPS instead of mips I presume).

-- 
Eric Botcazou


[PATCH 0/5] LRA fixes for MIPS-like targets

2017-02-07 Thread Matthew Fortune
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/msg0.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