This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Backport PowerPC complex __float128 compiler support to GCC 6.x


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]