public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Lulu Cheng <chenglulu@loongson.cn>
To: Kewen Lin <linkw@linux.ibm.com>, gcc-patches@gcc.gnu.org
Cc: xuchenghua@loongson.cn
Subject: Re: [PATCH 47/52] loongarch: New hook implementation loongarch_c_mode_for_floating_type
Date: Tue, 4 Jun 2024 09:45:39 +0800	[thread overview]
Message-ID: <9a7a7259-f027-e658-836f-87e4bc3b95b9@loongson.cn> (raw)
In-Reply-To: <e575ca53e9fb1039a23fef0fb9fc0ffdd1ce1d51.1717134752.git.linkw@linux.ibm.com>

Ok! Thanks!

Lulu Cheng

在 2024/6/3 上午11:01, Kewen Lin 写道:
> This is to add new port specific hook implementation
> loongarch_c_mode_for_floating_type, remove macro
> defines for FLOAT_TYPE_SIZE and DOUBLE_TYPE_SIZE, and
> rename LONG_DOUBLE_TYPE_SIZE to LA_LONG_DOUBLE_TYPE_SIZE
> as we poison LONG_DOUBLE_TYPE_SIZE but some macros need
> LONG_DOUBLE_TYPE_SIZE.
>
> gcc/ChangeLog:
>
> 	* config/loongarch/loongarch.cc (loongarch_c_mode_for_floating_type):
> 	New function.
> 	(TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
> 	* config/loongarch/loongarch.h (FLOAT_TYPE_SIZE): Remove.
> 	(DOUBLE_TYPE_SIZE): Remove.
> 	(LONG_DOUBLE_TYPE_SIZE): Rename to ...
> 	(LA_LONG_DOUBLE_TYPE_SIZE): ... this.
> 	(UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE with
> 	LA_LONG_DOUBLE_TYPE_SIZE.
> 	(MAX_FIXED_MODE_SIZE): Likewise.
> 	(STRUCTURE_SIZE_BOUNDARY): Likewise.
> 	(BIGGEST_ALIGNMENT): Likewise.
> ---
>   gcc/config/loongarch/loongarch.cc | 15 +++++++++++++++
>   gcc/config/loongarch/loongarch.h  | 13 ++++++-------
>   2 files changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc
> index e7835ae34ae..e4a51303d22 100644
> --- a/gcc/config/loongarch/loongarch.cc
> +++ b/gcc/config/loongarch/loongarch.cc
> @@ -10946,6 +10946,18 @@ loongarch_builtin_support_vector_misalignment (machine_mode mode,
>   						      is_packed);
>   }
>   
> +/* Implement TARGET_C_MODE_FOR_FLOATING_TYPE.  Return TFmode or DFmode
> +   for TI_LONG_DOUBLE_TYPE which is for long double type, go with the
> +   default one for the others.  */
> +
> +static machine_mode
> +loongarch_c_mode_for_floating_type (enum tree_index ti)
> +{
> +  if (ti == TI_LONG_DOUBLE_TYPE)
> +    return TARGET_64BIT ? TFmode : DFmode;
> +  return default_mode_for_floating_type (ti);
> +}
> +
>   static bool
>   use_rsqrt_p (void)
>   {
> @@ -11256,6 +11268,9 @@ loongarch_asm_code_end (void)
>   #define TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT \
>     loongarch_builtin_support_vector_misalignment
>   
> +#undef TARGET_C_MODE_FOR_FLOATING_TYPE
> +#define TARGET_C_MODE_FOR_FLOATING_TYPE loongarch_c_mode_for_floating_type
> +
>   struct gcc_target targetm = TARGET_INITIALIZER;
>   
>   #include "gt-loongarch.h"
> diff --git a/gcc/config/loongarch/loongarch.h b/gcc/config/loongarch/loongarch.h
> index f7fe950f333..b9323aba394 100644
> --- a/gcc/config/loongarch/loongarch.h
> +++ b/gcc/config/loongarch/loongarch.h
> @@ -151,7 +151,7 @@ along with GCC; see the file COPYING3.  If not see
>   #define UNITS_PER_FPVALUE \
>     (TARGET_SOFT_FLOAT ? 0 \
>      : TARGET_SINGLE_FLOAT ? UNITS_PER_FP_REG \
> -			 : LONG_DOUBLE_TYPE_SIZE / BITS_PER_UNIT)
> +			 : LA_LONG_DOUBLE_TYPE_SIZE / BITS_PER_UNIT)
>   
>   /* The number of bytes in a double.  */
>   #define UNITS_PER_DOUBLE (TYPE_PRECISION (double_type_node) / BITS_PER_UNIT)
> @@ -162,9 +162,8 @@ along with GCC; see the file COPYING3.  If not see
>   #define LONG_TYPE_SIZE (TARGET_64BIT ? 64 : 32)
>   #define LONG_LONG_TYPE_SIZE 64
>   
> -#define FLOAT_TYPE_SIZE 32
> -#define DOUBLE_TYPE_SIZE 64
> -#define LONG_DOUBLE_TYPE_SIZE (TARGET_64BIT ? 128 : 64)
> +/* LONG_DOUBLE_TYPE_SIZE get poisoned, so add LA_ prefix.  */
> +#define LA_LONG_DOUBLE_TYPE_SIZE (TARGET_64BIT ? 128 : 64)
>   
>   /* Define the sizes of fixed-point types.  */
>   #define SHORT_FRACT_TYPE_SIZE 8
> @@ -179,7 +178,7 @@ along with GCC; see the file COPYING3.  If not see
>   
>   /* long double is not a fixed mode, but the idea is that, if we
>      support long double, we also want a 128-bit integer type.  */
> -#define MAX_FIXED_MODE_SIZE LONG_DOUBLE_TYPE_SIZE
> +#define MAX_FIXED_MODE_SIZE LA_LONG_DOUBLE_TYPE_SIZE
>   
>   /* Width in bits of a pointer.  */
>   #ifndef POINTER_SIZE
> @@ -200,11 +199,11 @@ along with GCC; see the file COPYING3.  If not see
>   #define STRUCTURE_SIZE_BOUNDARY 8
>   
>   /* There is no point aligning anything to a rounder boundary than
> -   LONG_DOUBLE_TYPE_SIZE, unless under LSX/LASX the bigggest alignment is
> +   LA_LONG_DOUBLE_TYPE_SIZE, unless under LSX/LASX the bigggest alignment is
>      BITS_PER_LSX_REG/BITS_PER_LASX_REG/..  */
>   #define BIGGEST_ALIGNMENT \
>     (ISA_HAS_LASX? BITS_PER_LASX_REG \
> -   : (ISA_HAS_LSX ? BITS_PER_LSX_REG : LONG_DOUBLE_TYPE_SIZE))
> +   : (ISA_HAS_LSX ? BITS_PER_LSX_REG : LA_LONG_DOUBLE_TYPE_SIZE))
>   
>   /* All accesses must be aligned.  */
>   #define STRICT_ALIGNMENT (TARGET_STRICT_ALIGN)


  reply	other threads:[~2024-06-04  1:45 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-03  3:00 [PATCH 00/52] Replace {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE with new hook Kewen Lin
2024-06-03  3:00 ` [PATCH 01/52] ada: Replace use of LONG_DOUBLE_TYPE_SIZE Kewen Lin
2024-06-03  8:51   ` Eric Botcazou
2024-06-05  9:32     ` Kewen.Lin
2024-06-03  3:00 ` [PATCH 02/52] d: " Kewen Lin
2024-06-03  8:40   ` Iain Buclaw
2024-06-03  8:57     ` Kewen.Lin
2024-06-03 14:39       ` Iain Buclaw
2024-06-04  3:17         ` [PATCH 02/52 v2] " Kewen.Lin
2024-06-04 11:35           ` Iain Buclaw
2024-06-05  9:32             ` Kewen.Lin
2024-06-03  3:00 ` [PATCH 03/52] fortran: Replace uses of {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-03 20:01   ` [PATCH 03/52] fortran: Replace uses of {FLOAT, {, LONG_}DOUBLE}_TYPE_SIZE Harald Anlauf
2024-06-03 20:01     ` Harald Anlauf
2024-06-05  9:30     ` Kewen.Lin
2024-06-03  3:00 ` [PATCH 04/52] go: Replace uses of {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-12  9:33   ` Kewen.Lin
2024-06-12 12:32     ` Ian Lance Taylor
2024-06-25  5:38       ` Kewen.Lin
2024-06-03  3:00 ` [PATCH 05/52] rust: " Kewen Lin
2024-06-12  9:35   ` PING^1 " Kewen.Lin
2024-06-21  1:48     ` PING^2 " Kewen.Lin
2024-06-21 10:17   ` Arthur Cohen
2024-06-21 10:36     ` Kewen.Lin
2024-06-25  5:42       ` Kewen.Lin
2024-06-25 10:14       ` Arthur Cohen
2024-06-03  3:00 ` [PATCH 06/52] m2: " Kewen Lin
2024-06-03 12:42   ` Gaius Mulley
2024-06-03 18:02   ` Joseph Myers
2024-06-04  3:19     ` Kewen.Lin
2024-06-05 14:22       ` Gaius Mulley
2024-06-06  5:15         ` Kewen.Lin
2024-06-06 18:31           ` Gaius Mulley
2024-06-12  9:31           ` Kewen.Lin
2024-06-15  5:00             ` Gaius Mulley
2024-06-17  6:07               ` Kewen.Lin
2024-06-03  3:00 ` [PATCH 07/52] darwin: Replace use of LONG_DOUBLE_TYPE_SIZE Kewen Lin
2024-06-04  6:21   ` Iain Sandoe
2024-06-05  9:29     ` Kewen.Lin
2024-06-03  3:00 ` [PATCH 08/52] vms: " Kewen Lin
2024-06-12  9:36   ` PING^1 " Kewen.Lin
2024-06-03  3:00 ` [PATCH 09/52] Replace {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE with new hook mode_for_floating_type Kewen Lin
2024-06-03  6:49   ` Richard Biener
2024-06-03  9:36     ` Kewen.Lin
2024-06-03 17:59   ` [PATCH 09/52] Replace {FLOAT, {, LONG_}DOUBLE}_TYPE_SIZE " Joseph Myers
2024-06-04  3:27     ` [PATCH 09/52 v2] " Kewen.Lin
2024-06-25  5:20       ` Kewen.Lin
2024-06-03  3:01 ` [PATCH 10/52] jit: Replace uses of {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-13  7:14   ` PING^1 " Kewen.Lin
2024-06-13 13:44   ` David Malcolm
2024-06-14  2:16     ` Kewen.Lin
2024-06-24  6:23       ` Kewen.Lin
2024-06-24 22:25       ` David Malcolm
2024-06-03  3:01 ` [PATCH 11/52] arc: Remove macros {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-13  7:14   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 12/52] bpf: " Kewen Lin
2024-06-13  7:15   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 13/52] epiphany: " Kewen Lin
2024-06-13  7:15   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 14/52] fr30: " Kewen Lin
2024-06-03 11:43   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 15/52] frv: " Kewen Lin
2024-06-03 13:31   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 16/52] ft32: " Kewen Lin
2024-06-13  7:15   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 17/52] gcn: " Kewen Lin
2024-06-03  9:14   ` [PATCH 17/52] gcn: Remove macros {FLOAT, DOUBLE, LONG_DOUBLE}_TYPE_SIZE Andrew Stubbs
2024-06-03  9:41     ` Kewen.Lin
2024-06-03  9:57       ` Jakub Jelinek
2024-06-03  3:01 ` [PATCH 18/52] iq2000: Remove macros {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-03 13:32   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 19/52] lm32: " Kewen Lin
2024-06-13  7:15   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 20/52] m32c: " Kewen Lin
2024-06-03 13:33   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 21/52] m32r: " Kewen Lin
2024-06-03 13:33   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 22/52] microblaze: " Kewen Lin
2024-06-13  7:16   ` PING^1 " Kewen.Lin
2024-06-13 17:37     ` Michael Eager
2024-06-03  3:01 ` [PATCH 23/52] mmix: " Kewen Lin
2024-06-06  1:41   ` Hans-Peter Nilsson
2024-06-06  2:11     ` Kewen.Lin
2024-06-03  3:01 ` [PATCH 24/52] moxie: " Kewen Lin
2024-06-13  7:16   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 25/52] msp430: " Kewen Lin
2024-06-03 13:34   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 26/52] nds32: " Kewen Lin
2024-06-13  7:16   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 27/52] nios2: " Kewen Lin
2024-06-06 16:23   ` Sandra Loosemore
2024-06-03  3:01 ` [PATCH 28/52] nvptx: " Kewen Lin
2024-06-13  7:16   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 29/52] or1k: " Kewen Lin
2024-06-13  7:16   ` PING^1 " Kewen.Lin
2024-06-20 14:18     ` Stafford Horne
2024-06-03  3:01 ` [PATCH 30/52] pdp11: Remove macro LONG_DOUBLE_TYPE_SIZE Kewen Lin
2024-06-13  7:16   ` PING^1 " Kewen.Lin
2024-06-13 20:07     ` Paul Koning
2024-06-14  3:22       ` [PATCH 30/52 v2] pdp11: Remove macro {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE Kewen.Lin
2024-06-14 15:20         ` Paul Koning
2024-06-17  2:01           ` Kewen.Lin
2024-06-17 18:05             ` Paul Koning
2024-06-03  3:01 ` [PATCH 31/52] pru: Remove macros {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-03 15:59   ` Dimitar Dimitrov
2024-06-03  3:01 ` [PATCH 32/52] stormy16: " Kewen Lin
2024-06-03 13:35   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 33/52] visium: " Kewen Lin
2024-06-13  7:17   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 34/52] xtensa: " Kewen Lin
2024-06-03 21:08   ` augustine.sterling
2024-06-03  3:01 ` [PATCH 35/52] rs6000: New hook implementation rs6000_c_mode_for_floating_type Kewen Lin
2024-06-03  3:01 ` [PATCH 36/52] aarch64: New hook implementation aarch64_c_mode_for_floating_type Kewen Lin
2024-06-03 10:32   ` Richard Sandiford
2024-06-03  3:01 ` [PATCH 37/52] alpha: New hook implementation alpha_c_mode_for_floating_type Kewen Lin
2024-06-13  7:42   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 38/52] avr: New hook implementation avr_c_mode_for_floating_type Kewen Lin
2024-06-13  7:42   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 39/52] i386: New hook implementation ix86_c_mode_for_floating_type Kewen Lin
2024-06-03  7:12   ` Uros Bizjak
2024-06-03  3:01 ` [PATCH 40/52] ia64: New hook implementation ia64_c_mode_for_floating_type Kewen Lin
2024-06-13  7:42   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 41/52] riscv: New hook implementation riscv_c_mode_for_floating_type Kewen Lin
2024-06-03  5:14   ` Kito Cheng
2024-06-03  3:01 ` [PATCH 42/52] rl78: New hook implementation rl78_c_mode_for_floating_type Kewen Lin
2024-06-13  7:42   ` PING^1 " Kewen.Lin
2024-06-13  7:46     ` Richard Biener
2024-06-03  3:01 ` [PATCH 43/52] rx: New hook implementation rx_c_mode_for_floating_type Kewen Lin
2024-06-03 13:36   ` Nick Clifton
2024-06-03  3:01 ` [PATCH 44/52] s390: New hook implementation s390_c_mode_for_floating_type Kewen Lin
2024-06-13  7:43   ` PING^1 " Kewen.Lin
2024-06-14  5:40     ` Andreas Krebbel
2024-06-03  3:01 ` [PATCH 45/52] sh: New hook implementation sh_c_mode_for_floating_type Kewen Lin
2024-06-03  3:16   ` Oleg Endo
2024-06-03  3:01 ` [PATCH 46/52] h8300: New hook implementation h8300_c_mode_for_floating_type Kewen Lin
2024-06-13  7:43   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 47/52] loongarch: New hook implementation loongarch_c_mode_for_floating_type Kewen Lin
2024-06-04  1:45   ` Lulu Cheng [this message]
2024-06-03  3:01 ` [PATCH 48/52] m68k: New hook implementation m68k_c_mode_for_floating_type Kewen Lin
2024-06-13  7:43   ` PING^1 " Kewen.Lin
2024-06-03  3:01 ` [PATCH 49/52] mips: New hook implementation mips_c_mode_for_floating_type Kewen Lin
2024-06-04  1:16   ` YunQiang Su
2024-06-03  3:01 ` [PATCH 50/52] pa: New hook implementation pa_c_mode_for_floating_type Kewen Lin
2024-06-04 18:55   ` John David Anglin
2024-06-03  3:01 ` [PATCH 51/52] sparc: New hook implementation sparc_c_mode_for_floating_type Kewen Lin
2024-06-03  9:02   ` Eric Botcazou
2024-06-03  9:37     ` Kewen.Lin
2024-06-03  3:01 ` [PATCH 52/52] bfin: Rename macros {FLOAT,DOUBLE}_TYPE_SIZE Kewen Lin
2024-06-13  7:43   ` PING^1 " Kewen.Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9a7a7259-f027-e658-836f-87e4bc3b95b9@loongson.cn \
    --to=chenglulu@loongson.cn \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=linkw@linux.ibm.com \
    --cc=xuchenghua@loongson.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).