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. saw...@linux.ibm.com
IBM Linux on POWER Toolchain
 

Reply via email to