On Wed, 22 Jun 2016, Michael Meissner wrote:

> On Wed, Jun 15, 2016 at 11:01:05AM +0200, Richard Biener wrote:
> > And I don't understand the layout_type change either - it looks to me
> > it could just have used
> > 
> >   SET_TYPE_MODE (type, GET_MODE_COMPLEX_MODE (TYPE_MODE 
> > (TREE_TYPE (type))));
> > 
> > and be done with it.  To me that looks a lot safer.
> 
> I made this change in the trunk, and now I would like approval for applying
> this code which includes the above change in the GCC 6.2 branch.
> 
> Here is the change for the trunk:
> https://gcc.gnu.org/ml/gcc-patches/2016-06/msg01489.html
> 
> I tested it on both a big endian power7 and a little endian power8 systems 
> with
> no regressions.  Is it ok to apply to the GCC 6.2 branch?

Ok.

Richard.

> [gcc]
> 2016-06-22  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       Back port from trunk
>       2016-06-21  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       * stor-layout.c (layout_type): Move setting complex MODE to
>       layout_type, instead of setting it ahead of time by the caller.
> 
>       Back port from trunk
>       2016-05-11  Alan Modra  <amo...@gmail.com>
> 
>       * config/rs6000/rs6000.c (is_complex_IBM_long_double,
>       abi_v4_pass_in_fpr): New functions.
>       (rs6000_function_arg_boundary): Exclude complex IBM long double
>       from 64-bit alignment when ABI_V4.
>       (rs6000_function_arg, rs6000_function_arg_advance_1,
>       rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
> 
>       Back port from trunk
>       2016-05-02  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       * machmode.h (mode_complex): Add support to give the complex mode
>       for a given mode.
>       (GET_MODE_COMPLEX_MODE): Likewise.
>       * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
>       stored by build_complex_type and gfc_build_complex_type instead of
>       trying to figure out the appropriate mode based on the size. Raise
>       an assertion error, if the type was not set.
>       * genmodes.c (struct mode_data): Add field for the complex type of
>       the given type.
>       (blank_mode): Likewise.
>       (make_complex_modes): Remember the complex mode created in the
>       base type.
>       (emit_mode_complex): Write out the mode_complex array to map a
>       type mode to the complex version.
>       (emit_insn_modes_c): Likewise.
>       * tree.c (build_complex_type): Set the complex type to use before
>       calling layout_type.
>       * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
>       support for __float128 complex datatypes.
>       (rs6000_hard_regno_mode_ok): Likewise.
>       (rs6000_setup_reg_addr_masks): Likewise.
>       (rs6000_complex_function_value): Likewise.
>       * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
>       __float128 and __ibm128 complex.
>       (FLOAT128_IBM_P): Likewise.
>       (ALTIVEC_ARG_MAX_RETURN): Likewise.
>       * doc/extend.texi (Additional Floating Types): Document that
>       -mfloat128 must be used to enable __float128.  Document complex
>       __float128 and __ibm128 support.
> 
> [gcc/testsuite]
> 2016-06-22  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       Back port from trunk
>       2016-05-02  Michael Meissner  <meiss...@linux.vnet.ibm.com>
> 
>       * gcc.target/powerpc/float128-complex-1.c: New tests for complex
>       __float128.
>       * gcc.target/powerpc/float128-complex-2.c: Likewise.
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 
21284 (AG Nuernberg)

Reply via email to