PowerPC64 reload failure with misaligned fp load

Ulrich Weigand uweigand@de.ibm.com
Fri Mar 25 20:42:00 GMT 2011


David Edelsohn wrote:
> On Fri, Mar 25, 2011 at 11:09 AM, Alan Modra <amodra@gmail.com> wrote:
> 
> > Much of the following patch is based on Michael Meissner's support for
> > vector reloads. =A0The predicates.md change teaches the predicate used
> > by the "Y" constraint to check cmodel medium addresses in case such
> > addresses should ever be generated with invalid offsets.
> > Bootstrapped and regression tested powerpc64-linux. OK mainline?
> >
> > =A0 =A0 =A0 =A0* config/rs6000/predicates.md (word_offset_memref_op): Han=
> dle
> > =A0 =A0 =A0 =A0cmodel medium addresses.
> > =A0 =A0 =A0 =A0* config/rs6000/rs6000.c (rs6000_secondary_reload): Handle=
>  misaligned
> > =A0 =A0 =A0 =A064-bit gpr loads and stores.
> > =A0 =A0 =A0 =A0(rs6000_secondary_reload_ppc64): New function.
> > =A0 =A0 =A0 =A0* config/rs6000/rs6000-protos.h: Declare it.
> > =A0 =A0 =A0 =A0* config/rs6000/rs6000.md (reload_di_store, reload_di_load=
> ): New.
> 
> Okay with me.
> 
> Want to give Uli a heads up in case he has any additional comments.

Looks good to me, except ...

+  mem = change_address (mem, VOIDmode, scratch_or_premodify);

Maybe replace_equiv_address instead, to avoid losing the memory
attribute information (alignment, alias set, ...)?

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com



More information about the Gcc-patches mailing list