This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Backport PowerPC complex __float128 compiler support to GCC 6.x
- From: Richard Biener <rguenther at suse dot de>
- To: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- Cc: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Segher Boessenkool <segher at kernel dot crashing dot org>, David Edelsohn <dje dot gcc at gmail dot com>, Richard Henderson <rth at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>, Jeff Law <law at redhat dot com>, Jason Merrill <jason at redhat dot com>, Joseph Myers <joseph at codesourcery dot com>, Bernd Schmidt <bschmidt at redhat dot com>, Ian Lance Taylor <ian at airs dot com>, Jim Wilson <wilson at tuliptree dot org>
- Date: Mon, 27 Jun 2016 10:06:12 +0200 (CEST)
- Subject: Re: [PATCH] Backport PowerPC complex __float128 compiler support to GCC 6.x
- Authentication-results: sourceware.org; auth=none
- References: <20160603133335 dot GA28522 at ibm-tiger dot the-meissners dot org> <20160609200653 dot GA3361 at ibm-tiger dot the-meissners dot org> <alpine dot LSU dot 2 dot 11 dot 1606100905380 dot 13824 at t29 dot fhfr dot qr> <AB463E7C-3875-42DB-8B4D-035126F66ED1 at linux dot vnet dot ibm dot com> <alpine dot LSU dot 2 dot 11 dot 1606151055080 dot 13824 at t29 dot fhfr dot qr> <20160622181754 dot GA24386 at ibm-tiger dot the-meissners dot org>
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 <meissner@linux.vnet.ibm.com>
>
> Back port from trunk
> 2016-06-21 Michael Meissner <meissner@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 <amodra@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 <meissner@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 <meissner@linux.vnet.ibm.com>
>
> Back port from trunk
> 2016-05-02 Michael Meissner <meissner@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 <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)