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)
next prev parent 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).