Richard Sandiford writes:
> I think a cleaner way of doing it would be to have helper functions
> that switch in and out of the eliminated form, storing the old form
> in fields of a new structure (either separate from address_info,
> or a local inheritance of it). We probably also want to have a
rtune; Vladimir Makarov; gcc-patches@gcc.gnu.org; Kyrill Tkachov
Subject: Re: [RFC][PATCH][MIPS] Patch to enable LRA for MIPS backend
Robert Suchanek writes:
> Are you working on the solution to fix the breakage? I'm about
> to look into this and wanted to find out how far we got with thi
Robert Suchanek writes:
> Are you working on the solution to fix the breakage? I'm about
> to look into this and wanted to find out how far we got with this.
You mean the "cleaner way" I suggested, or something else?
If you want to have a go then feel free. Otherwise I'll try to get
to it over t
Ping.
From: Robert Suchanek
Sent: 14 May 2014 14:24
To: Richard Sandiford; Matthew Fortune
Cc: Vladimir Makarov; gcc-patches@gcc.gnu.org; Kyrill Tkachov
Subject: RE: [RFC][PATCH][MIPS] Patch to enable LRA for MIPS backend
Hi Richard,
Are you working on
> To: Matthew Fortune
> Cc: Vladimir Makarov; Robert Suchanek; gcc-patches@gcc.gnu.org; Kyrill
> Tkachov
> Subject: Re: [RFC][PATCH][MIPS] Patch to enable LRA for MIPS backend
>
> Thanks for looking at this.
>
> Matthew Fortune writes:
> >> > Hi all,
> >>
Thanks for looking at this.
Matthew Fortune writes:
>> > Hi all,
>> > This caused some testsuite failures on arm:
>> > FAIL: gcc.target/arm/vfp-ldmdbd.c scan-assembler fldmdbd
>> > FAIL: gcc.target/arm/vfp-ldmdbs.c scan-assembler fldmdbs
>> > FAIL: gcc.target/arm/vfp-ldmiad.c scan-assembler fldmi
Richard/Vlad,
Richard Sandiford writes:
> Kyrill Tkachov writes:
> > On 03/05/14 20:21, Richard Sandiford wrote:
...snip...
> > Hi all,
> > This caused some testsuite failures on arm:
> > FAIL: gcc.target/arm/vfp-ldmdbd.c scan-assembler fldmdbd
> > FAIL: gcc.target/arm/vfp-ldmdbs.c scan-assemb
Kyrill Tkachov writes:
> On 03/05/14 20:21, Richard Sandiford wrote:
>> Vladimir Makarov writes:
> Not sure how the constraint would/should exclude $sp-based address in
> LRA. In this particular case, a spilled pseudo is changed to memory
> giving the following RTL form:
>
>
On 03/05/14 20:21, Richard Sandiford wrote:
Vladimir Makarov writes:
Not sure how the constraint would/should exclude $sp-based address in
LRA. In this particular case, a spilled pseudo is changed to memory
giving the following RTL form:
(insn 30 29 31 4 (set (reg:SI 4 $4)
(and:SI (
Vladimir Makarov writes:
>>> Not sure how the constraint would/should exclude $sp-based address in
>>> LRA. In this particular case, a spilled pseudo is changed to memory
>>> giving the following RTL form:
>>>
>>> (insn 30 29 31 4 (set (reg:SI 4 $4)
>>> (and:SI (mem/c:SI (plus:SI (reg/f:
On 2014-04-21, 8:23 AM, Richard Sandiford wrote:
Robert Suchanek writes:
Did you see the failures even after your mips_regno_mode_ok_for_base_p
change? LRA should know how to reload a "W" address.
Yes but I realize there is more. It fails because $sp is now included
in BASE_REG_CLASS and "W"
> Hmm, in that case maybe we should just leave it failing. The alternative
> would be to skip the test altogther for MIPS, with a PR referencing it,
> but that seems a bit over-the-top.
I'd leave it as it is for now until the consensus regarding the 'X' constraint
is reached.
> Please use comme
Robert Suchanek writes:
> If we were going to XFAIL the test then it would apply specifically
> for -mips16 -O1. In any other combination it appears to work. Would
> that be a stopper?
Hmm, in that case maybe we should just leave it failing. The alternative
would be to skip the test altogther f
> Yeah, I think the lack of elimination is the problem. process_address
> eliminates $frame temporarily before checking whether the address
> is valid, but the places that check EXTRA_CONSTRAINT_STR pass the
> original uneliminated address. So the legitimate_address_p hook sees
> the $sp-based ad
Robert Suchanek writes:
>> >> Did you see the failures even after your mips_regno_mode_ok_for_base_p
>> >> change? LRA should know how to reload a "W" address.
>> >
>> > Yes but I realize there is more. It fails because $sp is now included
>> > in BASE_REG_CLASS and "W" is based on it. However, I
> >> Did you see the failures even after your mips_regno_mode_ok_for_base_p
> >> change? LRA should know how to reload a "W" address.
> >
> > Yes but I realize there is more. It fails because $sp is now included
> > in BASE_REG_CLASS and "W" is based on it. However, I suppose that
> > it would be
Robert Suchanek writes:
>> Hmm, marking them fixed was supposed to be a temporary reload-only thing,
>> until the move to LRA. It should never be worse to spill to these GPRs
>> over spilling to the stack, if the value isn't live across a call.
>
> I would say this also affects IRA/LRA integratio
> So yeah, I agree this is right after all, sorry. Let's delete the
> comment starting at "There are two problems here:" at the same time.
Ok.
> mips_regno_to_class should then map $sp to the new class, since it's now
> the smallest containing class. (We really should set that up automatically
Richard Sandiford writes:
> Robert Suchanek writes:
>> I'm not particularly happy with this either. This was an attempt to fix an
>> ICE for
>> the following RTL (gcc.dg/torture/asm-subreg-1.c compiled with -mips32r2
>> -mips16 -O1):
>>
>> (insn 9 8 0 2 (asm_operands/v ("") ("") 0 [
>>
Robert Suchanek writes:
>> FYI, all other targets that have LRA optionally selectable or deselectable
>> use -mno-lra for this (even when -mlra is the default), it would be better
>> for consistency not to invent new switch names for that.
>
> Agreed.
>
>>> -return !strict_p || GET_MODE_SIZE (
> FYI, all other targets that have LRA optionally selectable or deselectable
> use -mno-lra for this (even when -mlra is the default), it would be better
> for consistency not to invent new switch names for that.
Agreed.
>> -return !strict_p || GET_MODE_SIZE (mode) == 4 || GET_MODE_SIZE (mode
On Sat, Mar 29, 2014 at 01:07:40AM +, Robert Suchanek wrote:
> This patch enables LRA by default for MIPS. The classic reload is still
> available and can be enabled via -mreload switch.
FYI, all other targets that have LRA optionally selectable or deselectable
use -mno-lra for this (even whe
First of all, thanks a lot for doing this.
Robert Suchanek writes:
> diff --git gcc/config/mips/mips.c gcc/config/mips/mips.c
> index 143169b..f27a801 100644
> --- gcc/config/mips/mips.c
> +++ gcc/config/mips/mips.c
> @@ -2255,7 +2255,7 @@ mips_regno_mode_ok_for_base_p (int regno, enum
> machine
Hi All,
This patch enables LRA by default for MIPS. The classic reload is still
available and can be enabled via -mreload switch.
All regression are fixed, with one exception described below.
There was a necessary change in the LRA core as I believe there was a genuine
unhandled case in LRA wh
24 matches
Mail list logo