Re: Converting to LRA (calling all maintainers)

2017-01-06 Thread Claudiu Zissulescu

On 16/09/2016 22:37, Segher Boessenkool wrote:

Hi!

Since a few days TARGET_LRA_P defaults to returning "true".  I changed
all in-tree ports to still behave the same as before, which for most
ports means they use old reload always.  All the primary platforms (see
the release criteria, ) now
default to LRA though.

Since one day (hopefully not too very far in the future) we want to
deprecate and eventually remove old reload, all ports that do not want
to risk being removed should be adapted to work with LRA.  New ports
should use LRA always.

I started a wiki page at 
that gives hints on how to go about moving to LRA.  Please add any and
all details and experiences you think can help others, there!

Thanks for listening to this public service announcement,


Segher



Thank you Segher for the wiki. ARC has some experimental support for LRA 
but there are still some issues which needs to be cleaned out. Hopefully 
in the next period, I'll be able to address most of them, leading us to 
have LRA default for our port.



Best,
Claudiu


Re: Converting to LRA (calling all maintainers)

2017-01-03 Thread Eric Botcazou
> Have any back ends been converted since the default was changed, that
> did not already have LRA support?  I looked at this in the context of
> nios2 a few months ago (when we were still in stage 1) but didn't see an
> example patch set for any other back end, or a good description of what
> I needed to do.

The SPARC port fits the description, all the LRA related patches went in 
starting from December 1st (although the important issues had already been 
identified and a fair amount of work already been done earlier by Davem).

SPARC is a very regular architecture with few, simple addressing modes so the 
conversion was relatively straightforward.  The only irregular feature is the 
pairing of (even, odd) integer registers in 32-bit mode and it was the source 
of the annoying issues.  I'm going to add a few words on the Wiki about that.

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2017-01-03 Thread Sandra Loosemore

On 01/03/2017 02:22 PM, Eric Botcazou wrote:

p.s.  Are there plans for converting the SPARC port?


The SPARC port has now been converted.

Note that the status of the PowerPC port is a bit confusing because both
doc/invoke.texi and htdocs/backends.html say that it still uses reload.


Have any back ends been converted since the default was changed, that 
did not already have LRA support?  I looked at this in the context of 
nios2 a few months ago (when we were still in stage 1) but didn't see an 
example patch set for any other back end, or a good description of what 
I needed to do.  So I've been lurking waiting for somebody else to be 
brave enough to go first.  :-P  Maybe other port maintainers are in the 
same position?


-Sandra



Re: Converting to LRA (calling all maintainers)

2017-01-03 Thread David Edelsohn
On Tue, Jan 3, 2017 at 4:22 PM, Eric Botcazou  wrote:
>> p.s.  Are there plans for converting the SPARC port?
>
> Note that the status of the PowerPC port is a bit confusing because both
> doc/invoke.texi and htdocs/backends.html say that it still uses reload.

Fixed.

Thanks, David


Re: Converting to LRA (calling all maintainers)

2017-01-03 Thread David Miller
From: Eric Botcazou 
Date: Tue, 03 Jan 2017 22:22:05 +0100

>> p.s.  Are there plans for converting the SPARC port?
> 
> The SPARC port has now been converted.

Thanks so much for doing this work, I wish I could have been more
helpful.


Re: Converting to LRA (calling all maintainers)

2017-01-03 Thread Eric Botcazou
> p.s.  Are there plans for converting the SPARC port?

The SPARC port has now been converted.

Note that the status of the PowerPC port is a bit confusing because both 
doc/invoke.texi and htdocs/backends.html say that it still uses reload.

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-10-10 Thread Eric Botcazou
> > Do we have a Wiki page for the cc0 conversion?  If no, I can start one
> > based on my fresh experience with the Visium port.
> 
> There is none so far as far as I know.  Thanks for volunteering,

OK, the page is at https://gcc.gnu.org/wiki/CC0Transition and linked to from 
the "Current Projects" list on the HomePage.  Probably a bit too verbose...

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-09-25 Thread Paul.Koning

> On Sep 25, 2016, at 4:46 AM, Eric Botcazou  wrote:
> 
>> There is no hurry to kill old reload.  As you say, many targets will
>> not be converted soon.  But one day it will be removed.  Not in GCC 7,
>> not in GCC 8 almost certainly.  But one day.
> 
> Certainly not in GCC 8, the top priority is IMO the cc0 thing and you cannot 
> really do both at the same time for a given port.  Do we have a Wiki page for 
> the cc0 conversion?  If no, I can start one based on my fresh experience with 
> the Visium port.

That would be great.  I've been trying to understand the process, and while I 
have a few notes from assorted emails over the years, it certainly isn't clear 
in my mind.

paul



Re: Converting to LRA (calling all maintainers)

2016-09-25 Thread Segher Boessenkool
On Sun, Sep 25, 2016 at 10:46:55AM +0200, Eric Botcazou wrote:
> > There is no hurry to kill old reload.  As you say, many targets will
> > not be converted soon.  But one day it will be removed.  Not in GCC 7,
> > not in GCC 8 almost certainly.  But one day.
> 
> Certainly not in GCC 8, the top priority is IMO the cc0 thing and you cannot 
> really do both at the same time for a given port.

You can delete one port for two reasons at the same time though ;-)

> Do we have a Wiki page for 
> the cc0 conversion?  If no, I can start one based on my fresh experience with 
> the Visium port.

There is none so far as far as I know.  Thanks for volunteering,


Segher


Re: Converting to LRA (calling all maintainers)

2016-09-25 Thread Eric Botcazou
> There is no hurry to kill old reload.  As you say, many targets will
> not be converted soon.  But one day it will be removed.  Not in GCC 7,
> not in GCC 8 almost certainly.  But one day.

Certainly not in GCC 8, the top priority is IMO the cc0 thing and you cannot 
really do both at the same time for a given port.  Do we have a Wiki page for 
the cc0 conversion?  If no, I can start one based on my fresh experience with 
the Visium port.

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-09-25 Thread Segher Boessenkool
On Sun, Sep 25, 2016 at 04:28:04PM +0900, Oleg Endo wrote:
> > > ANd yes, I see this as a way to deprecating those cc0 targets like
> > > the 
> > > m68k :-)
> > Would be a shame to see m68k go.  There still is time...
> 
> Indeed.  68K is a perfect candidate for addressing mode optimization
> (AMS).  It was actually one of the next targets on the list after SH.
> 
> What's with all that hurry to kill the old reload?  Unless LRA can be
> brought "up to speed" for all other targets and vice versa, ripping out
> old reload and all the dependent targets would be a set back for GCC,
> IMHO.  It would lose a bunch of targets.

There is no hurry to kill old reload.  As you say, many targets will
not be converted soon.  But one day it will be removed.  Not in GCC 7,
not in GCC 8 almost certainly.  But one day.

There are enough half conversions in GCC already, and the maintenance
cost is non-zero.


Segher


Re: Converting to LRA (calling all maintainers)

2016-09-17 Thread Eric Botcazou
> Probably the earliest I could look into this again would be
> November.

OK, fine with me.  I'm going to slightly restructure the support of the 
integer condition codes in preparation for the implementation of the new 
overflow arithmetic operations, but there should be no overlap.

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-09-17 Thread David Miller
From: Eric Botcazou 
Date: Sat, 17 Sep 2016 10:18:23 +0200

>> I lacked the time to debug it properly so we reverted.
> 
> Do you plan to give it a try again in the near future?

I was going to work on this over the past summer, but other
responsibilities took up all of my time.

Probably the earliest I could look into this again would be
November.


Re: Converting to LRA (calling all maintainers)

2016-09-17 Thread Eric Botcazou
> I lacked the time to debug it properly so we reverted.

Do you plan to give it a try again in the near future?

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-09-17 Thread David Miller
From: Eric Botcazou 
Date: Fri, 16 Sep 2016 23:43:43 +0200

>> p.s.  Are there plans for converting the SPARC port?
> 
> There are more than plans - actual patches by DaveM that were installed at 
> some point and then reverted quickly because of unexpected fallout.

Yeah, sparc64 failed to bootstrap and it was the stage2 that was
miscompiled.

I lacked the time to debug it properly so we reverted.


Re: Converting to LRA (calling all maintainers)

2016-09-16 Thread Eric Botcazou
> p.s.  Are there plans for converting the SPARC port?

There are more than plans - actual patches by DaveM that were installed at 
some point and then reverted quickly because of unexpected fallout.

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-09-16 Thread Segher Boessenkool
On Fri, Sep 16, 2016 at 11:22:04PM +0200, Eric Botcazou wrote:
> > Since a few days TARGET_LRA_P defaults to returning "true".  I changed
> > all in-tree ports to still behave the same as before, which for most
> > ports means they use old reload always.  All the primary platforms (see
> > the release criteria, ) now
> > default to LRA though.
> 
> So SPARC was changed and neither DaveM nor I was told about it? ;-)

Huh!  For over a year I have been working under the (as it turns out now)
false impression that Power was the last port to change over.

Well that is a nice way to start the weekend.  For me, anyway!


Segher

p.s.  Are there plans for converting the SPARC port?


Re: Converting to LRA (calling all maintainers)

2016-09-16 Thread Segher Boessenkool
On Fri, Sep 16, 2016 at 02:53:16PM -0600, Jeff Law wrote:
> Under traps for the unwary -- LRA requires the target to not use the old 
> cc0 condition code handling...

I added this now, thanks Jeff.

> ANd yes, I see this as a way to deprecating those cc0 targets like the 
> m68k :-)

Would be a shame to see m68k go.  There still is time...


Segher


Re: Converting to LRA (calling all maintainers)

2016-09-16 Thread Eric Botcazou
> Since a few days TARGET_LRA_P defaults to returning "true".  I changed
> all in-tree ports to still behave the same as before, which for most
> ports means they use old reload always.  All the primary platforms (see
> the release criteria, ) now
> default to LRA though.

So SPARC was changed and neither DaveM nor I was told about it? ;-)

-- 
Eric Botcazou


Re: Converting to LRA (calling all maintainers)

2016-09-16 Thread Jeff Law

On 09/16/2016 02:37 PM, Segher Boessenkool wrote:

Hi!

Since a few days TARGET_LRA_P defaults to returning "true".  I changed
all in-tree ports to still behave the same as before, which for most
ports means they use old reload always.  All the primary platforms (see
the release criteria, ) now
default to LRA though.

Since one day (hopefully not too very far in the future) we want to
deprecate and eventually remove old reload, all ports that do not want
to risk being removed should be adapted to work with LRA.  New ports
should use LRA always.

I started a wiki page at 
that gives hints on how to go about moving to LRA.  Please add any and
all details and experiences you think can help others, there!

Thanks for listening to this public service announcement,
Under traps for the unwary -- LRA requires the target to not use the old 
cc0 condition code handling...


ANd yes, I see this as a way to deprecating those cc0 targets like the 
m68k :-)


Jeff


Converting to LRA (calling all maintainers)

2016-09-16 Thread Segher Boessenkool
Hi!

Since a few days TARGET_LRA_P defaults to returning "true".  I changed
all in-tree ports to still behave the same as before, which for most
ports means they use old reload always.  All the primary platforms (see
the release criteria, ) now
default to LRA though.

Since one day (hopefully not too very far in the future) we want to
deprecate and eventually remove old reload, all ports that do not want
to risk being removed should be adapted to work with LRA.  New ports
should use LRA always.

I started a wiki page at 
that gives hints on how to go about moving to LRA.  Please add any and
all details and experiences you think can help others, there!

Thanks for listening to this public service announcement,


Segher