Question on gcc RTL and scheduling step.

Segher Boessenkool segher@kernel.crashing.org
Wed Feb 26 22:00:00 GMT 2020


[ Top-post do please not. ]

On Wed, Feb 26, 2020 at 04:11:06PM +0100, Henri Cloetens wrote:
> - On the issue of the restore of R18 in mode DI, it seems from
>   analysing the log file that the compiler does not understand this
>   also affects R19. This looks a bug to me ??. Anyway, I have resolved
>   this, by adding a 'clobber' statement to R19 when R18 is written
>   in mode 'DI'.

You haven't showed any evidence like this, so it's hard for use to help
you with this at all.  *Is* DImode a two register mode in your backend?

> - The other issue, I have changed ((set) (pc) (return)) to (return),
>   but, as far as I understand the logfiles, and the documentation,
>   both forms are equivalent. Anyway, after fixing the first issue, I do
>   not see the second issue any more.

The docs say
  Note that an insn pattern of @code{(return)} is logically equivalent to
  @code{(set (pc) (return))}, but the latter form is never used.

If something is never used, then not everything might expect that form,
that's all.


Segher



More information about the Gcc-help mailing list