public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Avoiding truncate/sign-extend of POImode on ppc target
@ 2020-09-02 14:22 Aaron Sawdey
  2020-09-02 14:27 ` Aaron Sawdey
  0 siblings, 1 reply; 2+ messages in thread
From: Aaron Sawdey @ 2020-09-02 14:22 UTC (permalink / raw)
  To: GCC Development


PR96791 is happening because DSE is trying to truncate a
POImode reg down to DImode. The POImode is created by a
structure copy that gets inline expanded using lxvp/stxvp
which we have defined using POImode. DSE recognizes that a
following load overlaps with the stxvp and can be satisfied
by a truncation of the POImode reg used for the stxvp.

The intention of using POImode was to avoid having to fully
define OImode and it seems like defining these truncations
would be the first step along that path.  If I haven't
misrepresented it, I believe that is Segher's position on
this.

The function extract_low_bits() in expmed.c does some
querying of the target hook modes_tieable_p but not in any
way that allows us to tell it not to allow truncation of
POImode to a smaller mode.  As a result we run into the ICE
because the patterns are not provided to do this.

So, I put it to the community: Is there an existing way to do
this?  Or, do we need another target hook of some kind to
check this sort of thing?

Thanks,
    Aaron


Aaron Sawdey, Ph.D. sawdey@linux.ibm.com
IBM Linux on POWER Toolchain
 


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

* Re: Avoiding truncate/sign-extend of POImode on ppc target
  2020-09-02 14:22 Avoiding truncate/sign-extend of POImode on ppc target Aaron Sawdey
@ 2020-09-02 14:27 ` Aaron Sawdey
  0 siblings, 0 replies; 2+ messages in thread
From: Aaron Sawdey @ 2020-09-02 14:27 UTC (permalink / raw)
  To: Aaron Sawdey
  Cc: GCC Development, rguenther, Richard Sandiford, dje.gcc,
	Segher Boessenkool, gnu, wschmidt

Meant to CC a few people, oops.

Aaron Sawdey, Ph.D. sawdey@linux.ibm.com
IBM Linux on POWER Toolchain
 

> On Sep 2, 2020, at 9:22 AM, Aaron Sawdey via Gcc <gcc@gcc.gnu.org> wrote:
> 
> 
> PR96791 is happening because DSE is trying to truncate a
> POImode reg down to DImode. The POImode is created by a
> structure copy that gets inline expanded using lxvp/stxvp
> which we have defined using POImode. DSE recognizes that a
> following load overlaps with the stxvp and can be satisfied
> by a truncation of the POImode reg used for the stxvp.
> 
> The intention of using POImode was to avoid having to fully
> define OImode and it seems like defining these truncations
> would be the first step along that path.  If I haven't
> misrepresented it, I believe that is Segher's position on
> this.
> 
> The function extract_low_bits() in expmed.c does some
> querying of the target hook modes_tieable_p but not in any
> way that allows us to tell it not to allow truncation of
> POImode to a smaller mode.  As a result we run into the ICE
> because the patterns are not provided to do this.
> 
> So, I put it to the community: Is there an existing way to do
> this?  Or, do we need another target hook of some kind to
> check this sort of thing?
> 
> Thanks,
>    Aaron
> 
> 
> Aaron Sawdey, Ph.D. sawdey@linux.ibm.com
> IBM Linux on POWER Toolchain
> 
> 


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

end of thread, other threads:[~2020-09-02 14:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-02 14:22 Avoiding truncate/sign-extend of POImode on ppc target Aaron Sawdey
2020-09-02 14:27 ` Aaron Sawdey

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).