public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* make static method find_reloads_address_1(...) extern accessible
@ 2019-09-30 12:17 stefan
  2019-09-30 13:39 ` Jonathan Wakely
  2019-09-30 16:23 ` Jeff Law
  0 siblings, 2 replies; 5+ messages in thread
From: stefan @ 2019-09-30 12:17 UTC (permalink / raw)
  To: gcc-help

I've implemented LEGITIMIZE_RELOAD_ADDRESS and that implementation is
calling find_reloads_address_1.

My implementation adds double indirect addressing to the m68k target and
since the use of an outer index register or offset depends on the use of an
inner index register or offset, since only one index register and one offset
is allowed per address. => The recursive reload implementation does not
work. So the LEGITIMIZE_RELOAD_ADDRESS takes care of the whole address at
once.

How are the chances that a static method of reload is converted into an
extern accessible method, if a patch would requires it?

Regards

Stefan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: make static method find_reloads_address_1(...) extern accessible
  2019-09-30 12:17 make static method find_reloads_address_1(...) extern accessible stefan
@ 2019-09-30 13:39 ` Jonathan Wakely
  2019-09-30 16:23 ` Jeff Law
  1 sibling, 0 replies; 5+ messages in thread
From: Jonathan Wakely @ 2019-09-30 13:39 UTC (permalink / raw)
  To: stefan; +Cc: gcc-help

On Mon, 30 Sep 2019 at 13:17, <stefan@franke.ms> wrote:
>
> I've implemented LEGITIMIZE_RELOAD_ADDRESS and that implementation is
> calling find_reloads_address_1.
>
> My implementation adds double indirect addressing to the m68k target and
> since the use of an outer index register or offset depends on the use of an
> inner index register or offset, since only one index register and one offset
> is allowed per address. => The recursive reload implementation does not
> work. So the LEGITIMIZE_RELOAD_ADDRESS takes care of the whole address at
> once.
>
> How are the chances that a static method of reload is converted into an
> extern accessible method, if a patch would requires it?

If you're talking about modifying GCC then you should probably use the
gcc@ mailing list, not this one.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: make static method find_reloads_address_1(...) extern accessible
  2019-09-30 12:17 make static method find_reloads_address_1(...) extern accessible stefan
  2019-09-30 13:39 ` Jonathan Wakely
@ 2019-09-30 16:23 ` Jeff Law
  2019-09-30 17:25   ` AW: " stefan
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff Law @ 2019-09-30 16:23 UTC (permalink / raw)
  To: stefan, gcc-help

On 9/30/19 6:17 AM, stefan@franke.ms wrote:
> I've implemented LEGITIMIZE_RELOAD_ADDRESS and that implementation is
> calling find_reloads_address_1.
> 
> My implementation adds double indirect addressing to the m68k target and
> since the use of an outer index register or offset depends on the use of an
> inner index register or offset, since only one index register and one offset
> is allowed per address. => The recursive reload implementation does not
> work. So the LEGITIMIZE_RELOAD_ADDRESS takes care of the whole address at
> once.
> 
> How are the chances that a static method of reload is converted into an
> extern accessible method, if a patch would requires it?
If all you need is to make the routine visible, that may be OK.  THe
biggest worry is any data structures used by find_reloads_address_1 and
it's children and whether or not that data is valid.

The bigger concern I have is that we're on a path to drop reload and
instead use LRA.  So there's a good chance that the work you do in this
space doesn't have a significant lifetime -- doing it in LRA would be
better, at least in theory -- and at least one other port would like to
support double indirect addressing in LRA.

The natural question is whether or not m68k can use LRA instead of
reload.  That's predicated on converting the m68k from cc0 to MODE_CC
for representing the condition codes.  Nobody is currently signed up to
do this work and if nobody steps up, the m68k port will end up deprecated.


Jeff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* AW: make static method find_reloads_address_1(...) extern accessible
  2019-09-30 16:23 ` Jeff Law
@ 2019-09-30 17:25   ` stefan
  2019-10-01 19:29     ` Jeff Law
  0 siblings, 1 reply; 5+ messages in thread
From: stefan @ 2019-09-30 17:25 UTC (permalink / raw)
  To: 'Jeff Law', gcc-help



> -----Ursprüngliche Nachricht-----
> Von: Jeff Law <law@redhat.com>
> Gesendet: Montag, 30. September 2019 18:23
> An: stefan@franke.ms; gcc-help@gcc.gnu.org
> Betreff: Re: make static method find_reloads_address_1(...) extern
> accessible
> 
> On 9/30/19 6:17 AM, stefan@franke.ms wrote:
> > I've implemented LEGITIMIZE_RELOAD_ADDRESS and that implementation
> is
> > calling find_reloads_address_1.
> >
> > My implementation adds double indirect addressing to the m68k target
> > and since the use of an outer index register or offset depends on the
> > use of an inner index register or offset, since only one index
> > register and one offset is allowed per address. => The recursive
> > reload implementation does not work. So the
> LEGITIMIZE_RELOAD_ADDRESS
> > takes care of the whole address at once.
> >
> > How are the chances that a static method of reload is converted into
> > an extern accessible method, if a patch would requires it?
> If all you need is to make the routine visible, that may be OK.  THe biggest
> worry is any data structures used by find_reloads_address_1 and it's children
> and whether or not that data is valid.

It seems to work, passes the gcc.c-torture/execute tests... 

> The bigger concern I have is that we're on a path to drop reload and instead
> use LRA.  So there's a good chance that the work you do in this space doesn't
> have a significant lifetime -- doing it in LRA would be better, at least in theory
> -- and at least one other port would like to support double indirect
> addressing in LRA.
> 
> The natural question is whether or not m68k can use LRA instead of reload.
> That's predicated on converting the m68k from cc0 to MODE_CC for
> representing the condition codes.  Nobody is currently signed up to do this
> work and if nobody steps up, the m68k port will end up deprecated.

There's a bounty on bountysource for this: https://www.bountysource.com/issues/80706251-m68k-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases

And I am confident that an adequate implementation for LRA can be done.

Should I use the gcc development master branch (version 10 atm) or something stable for LRA?


Stefan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: AW: make static method find_reloads_address_1(...) extern accessible
  2019-09-30 17:25   ` AW: " stefan
@ 2019-10-01 19:29     ` Jeff Law
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff Law @ 2019-10-01 19:29 UTC (permalink / raw)
  To: stefan, gcc-help

On 9/30/19 11:25 AM, stefan@franke.ms wrote:
> 
> 
>> -----Ursprüngliche Nachricht-----
>> Von: Jeff Law <law@redhat.com>
>> Gesendet: Montag, 30. September 2019 18:23
>> An: stefan@franke.ms; gcc-help@gcc.gnu.org
>> Betreff: Re: make static method find_reloads_address_1(...) extern
>> accessible
>>
>> On 9/30/19 6:17 AM, stefan@franke.ms wrote:
>>> I've implemented LEGITIMIZE_RELOAD_ADDRESS and that implementation
>> is
>>> calling find_reloads_address_1.
>>>
>>> My implementation adds double indirect addressing to the m68k target
>>> and since the use of an outer index register or offset depends on the
>>> use of an inner index register or offset, since only one index
>>> register and one offset is allowed per address. => The recursive
>>> reload implementation does not work. So the
>> LEGITIMIZE_RELOAD_ADDRESS
>>> takes care of the whole address at once.
>>>
>>> How are the chances that a static method of reload is converted into
>>> an extern accessible method, if a patch would requires it?
>> If all you need is to make the routine visible, that may be OK.  THe biggest
>> worry is any data structures used by find_reloads_address_1 and it's children
>> and whether or not that data is valid.
> 
> It seems to work, passes the gcc.c-torture/execute tests... 
Well, that's good, but not really sufficient to determine if the patch
is correct.


> 
>> The bigger concern I have is that we're on a path to drop reload and instead
>> use LRA.  So there's a good chance that the work you do in this space doesn't
>> have a significant lifetime -- doing it in LRA would be better, at least in theory
>> -- and at least one other port would like to support double indirect
>> addressing in LRA.
>>
>> The natural question is whether or not m68k can use LRA instead of reload.
>> That's predicated on converting the m68k from cc0 to MODE_CC for
>> representing the condition codes.  Nobody is currently signed up to do this
>> work and if nobody steps up, the m68k port will end up deprecated.
> 
> There's a bounty on bountysource for this: https://www.bountysource.com/issues/80706251-m68k-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases
I'm aware.  Depending on a variety of things, my son might take a stab
at it next summer if nobody else has.  He helped on the v850 conversion
and has done some work on an h8 conversion.  The idea was to start with
easier ports, working towards the m68k.  But again, it's not a firm
commitment.

> 
> And I am confident that an adequate implementation for LRA can be done.
I'm much more concerned about the cc0 transition than LRA.  Conversion
to LRA is almost certainly a much smaller change.

> 
> Should I use the gcc development master branch (version 10 atm) or something stable for LRA?
GCC master.

Note that LRA does not support cc0 targets.  SO the cc0 transition has
to happen first.

jeff

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-01 19:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-30 12:17 make static method find_reloads_address_1(...) extern accessible stefan
2019-09-30 13:39 ` Jonathan Wakely
2019-09-30 16:23 ` Jeff Law
2019-09-30 17:25   ` AW: " stefan
2019-10-01 19:29     ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).