[RS6000] rs6000_preferred_reload_class
Alan Modra
amodra@gmail.com
Thu Aug 4 05:14:00 GMT 2016
On Wed, Aug 03, 2016 at 03:30:53PM -0400, Michael Meissner wrote:
> On Mon, Aug 01, 2016 at 09:00:43AM +0930, Alan Modra wrote:
> > Hi Mike,
> > I've been looking at a lot of reload/lra code lately in trying to fix
> > pr71680, and noticed a change to rs6000_preferred_reload_class.
> >
> > In https://gcc.gnu.org/ml/gcc-patches/2016-05/msg00134.html you made
> > preferred_reload_class pick a register class when given NO_REGS as an
> > argument. That seems odd to me given the usual behaviour of
> > preferred_reload_class is to restrict reg classes. Did you mean to
> > make that change? I'm wondering whether something you were playing
> > with escaped upstream, because there is no ChangeLog for it as far as
> > I can see..
>
> I was playing with that, but given the patch was meant to be complex only, I
> suspect we should try taking it out now, and see if it affects anything.
Now bootstrapped and regression tested powerpc64le-linux and
powerpc64-linux. OK to apply?
* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
code accidentally committed 2016-05-02 providing class when given
NO_REGS.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 5a9ddd9..b923cfb 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -20441,25 +20441,6 @@ rs6000_preferred_reload_class (rtx x, enum reg_class rclass)
return NO_REGS;
}
- /* If we haven't picked a register class, and the type is a vector or
- floating point type, prefer to use the VSX, FPR, or Altivec register
- classes. */
- if (rclass == NO_REGS)
- {
- if (TARGET_VSX && VECTOR_MEM_VSX_OR_P8_VECTOR_P (mode))
- return VSX_REGS;
-
- if (TARGET_ALTIVEC && VECTOR_MEM_ALTIVEC_P (mode))
- return ALTIVEC_REGS;
-
- if (DECIMAL_FLOAT_MODE_P (mode))
- return TARGET_DFP ? FLOAT_REGS : NO_REGS;
-
- if (TARGET_FPRS && TARGET_HARD_FLOAT && FLOAT_MODE_P (mode)
- && (reg_addr[mode].addr_mask[RELOAD_REG_FPR] & RELOAD_REG_VALID) != 0)
- return FLOAT_REGS;
- }
-
if (GET_MODE_CLASS (mode) == MODE_INT && rclass == NON_SPECIAL_REGS)
return GENERAL_REGS;
--
Alan Modra
Australia Development Lab, IBM
More information about the Gcc-patches
mailing list