public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [gcc] RTEMS: Tune multilib selection
@ 2023-02-23 11:48 Sebastian Huber
  2023-02-23 18:38 ` Palmer Dabbelt
  0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Huber @ 2023-02-23 11:48 UTC (permalink / raw)
  To: devel, gcc-patches

gcc/ChangeLog:

	* config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
	Add non-compact 32-bit multilibs.
---
 gcc/config/riscv/t-rtems | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/gcc/config/riscv/t-rtems b/gcc/config/riscv/t-rtems
index 41f5927fc87..19b12030895 100644
--- a/gcc/config/riscv/t-rtems
+++ b/gcc/config/riscv/t-rtems
@@ -1,8 +1,8 @@
 MULTILIB_OPTIONS	=
 MULTILIB_DIRNAMES	=
 
-MULTILIB_OPTIONS	+= march=rv32i/march=rv32im/march=rv32imafd/march=rv32iac/march=rv32imac/march=rv32imafc/march=rv64imafd/march=rv64imac/march=rv64imafdc
-MULTILIB_DIRNAMES	+= rv32i       rv32im       rv32imafd       rv32iac       rv32imac       rv32imafc       rv64imafd       rv64imac       rv64imafdc
+MULTILIB_OPTIONS	+= march=rv32i/march=rv32iac/march=rv32im/march=rv32ima/march=rv32imac/march=rv32imaf/march=rv32imafc/march=rv32imafd/march=rv32imafdc/march=rv64ima/march=rv64imac/march=rv64imafd/march=rv64imafdc
+MULTILIB_DIRNAMES	+= rv32i       rv32iac       rv32im       rv32ima       rv32imac       rv32imaf       rv32imafc       rv32imafd       rv32imafdc       rv64ima       rv64imac       rv64imafd       rv64imafdc
 
 MULTILIB_OPTIONS	+= mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d
 MULTILIB_DIRNAMES	+= ilp32      ilp32f      ilp32d      lp64      lp64d
@@ -12,14 +12,15 @@ MULTILIB_DIRNAMES	+= medany
 
 MULTILIB_REQUIRED	=
 MULTILIB_REQUIRED	+= march=rv32i/mabi=ilp32
-MULTILIB_REQUIRED	+= march=rv32im/mabi=ilp32
-MULTILIB_REQUIRED	+= march=rv32imafd/mabi=ilp32d
 MULTILIB_REQUIRED	+= march=rv32iac/mabi=ilp32
+MULTILIB_REQUIRED	+= march=rv32im/mabi=ilp32
+MULTILIB_REQUIRED	+= march=rv32ima/mabi=ilp32
 MULTILIB_REQUIRED	+= march=rv32imac/mabi=ilp32
+MULTILIB_REQUIRED	+= march=rv32imaf/mabi=ilp32f
 MULTILIB_REQUIRED	+= march=rv32imafc/mabi=ilp32f
-MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d
-MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d/mcmodel=medany
-MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64
+MULTILIB_REQUIRED	+= march=rv32imafd/mabi=ilp32d
+MULTILIB_REQUIRED	+= march=rv32imafdc/mabi=ilp32d
+MULTILIB_REQUIRED	+= march=rv64ima/mabi=lp64/mcmodel=medany
 MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64/mcmodel=medany
-MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d
+MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d/mcmodel=medany
 MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d/mcmodel=medany
-- 
2.35.3


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [gcc] RTEMS: Tune multilib selection
  2023-02-23 11:48 [gcc] RTEMS: Tune multilib selection Sebastian Huber
@ 2023-02-23 18:38 ` Palmer Dabbelt
  2023-02-24  6:23   ` Sebastian Huber
  0 siblings, 1 reply; 3+ messages in thread
From: Palmer Dabbelt @ 2023-02-23 18:38 UTC (permalink / raw)
  To: sebastian.huber; +Cc: devel, gcc-patches

On Thu, 23 Feb 2023 03:48:26 PST (-0800), sebastian.huber@embedded-brains.de wrote:
> gcc/ChangeLog:
>
> 	* config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
> 	Add non-compact 32-bit multilibs.
> ---
>  gcc/config/riscv/t-rtems | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/gcc/config/riscv/t-rtems b/gcc/config/riscv/t-rtems
> index 41f5927fc87..19b12030895 100644
> --- a/gcc/config/riscv/t-rtems
> +++ b/gcc/config/riscv/t-rtems
> @@ -1,8 +1,8 @@
>  MULTILIB_OPTIONS	=
>  MULTILIB_DIRNAMES	=
>  
> -MULTILIB_OPTIONS	+= march=rv32i/march=rv32im/march=rv32imafd/march=rv32iac/march=rv32imac/march=rv32imafc/march=rv64imafd/march=rv64imac/march=rv64imafdc
> -MULTILIB_DIRNAMES	+= rv32i       rv32im       rv32imafd       rv32iac       rv32imac       rv32imafc       rv64imafd       rv64imac       rv64imafdc
> +MULTILIB_OPTIONS	+= march=rv32i/march=rv32iac/march=rv32im/march=rv32ima/march=rv32imac/march=rv32imaf/march=rv32imafc/march=rv32imafd/march=rv32imafdc/march=rv64ima/march=rv64imac/march=rv64imafd/march=rv64imafdc
> +MULTILIB_DIRNAMES	+= rv32i       rv32iac       rv32im       rv32ima       rv32imac       rv32imaf       rv32imafc       rv32imafd       rv32imafdc       rv64ima       rv64imac       rv64imafd       rv64imafdc
>  
>  MULTILIB_OPTIONS	+= mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d
>  MULTILIB_DIRNAMES	+= ilp32      ilp32f      ilp32d      lp64      lp64d
> @@ -12,14 +12,15 @@ MULTILIB_DIRNAMES	+= medany
>  
>  MULTILIB_REQUIRED	=
>  MULTILIB_REQUIRED	+= march=rv32i/mabi=ilp32
> -MULTILIB_REQUIRED	+= march=rv32im/mabi=ilp32
> -MULTILIB_REQUIRED	+= march=rv32imafd/mabi=ilp32d
>  MULTILIB_REQUIRED	+= march=rv32iac/mabi=ilp32
> +MULTILIB_REQUIRED	+= march=rv32im/mabi=ilp32
> +MULTILIB_REQUIRED	+= march=rv32ima/mabi=ilp32
>  MULTILIB_REQUIRED	+= march=rv32imac/mabi=ilp32
> +MULTILIB_REQUIRED	+= march=rv32imaf/mabi=ilp32f
>  MULTILIB_REQUIRED	+= march=rv32imafc/mabi=ilp32f
> -MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d
> -MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d/mcmodel=medany
> -MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64
> +MULTILIB_REQUIRED	+= march=rv32imafd/mabi=ilp32d
> +MULTILIB_REQUIRED	+= march=rv32imafdc/mabi=ilp32d
> +MULTILIB_REQUIRED	+= march=rv64ima/mabi=lp64/mcmodel=medany
>  MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64/mcmodel=medany
> -MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d
> +MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d/mcmodel=medany
>  MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d/mcmodel=medany

Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>

IMO it's fine to remove multilibs from the default set.  It could be 
seen as breaking users, but IIRC last time we talked about something 
like this it was OK as otherwise we're going to end up with a huge set 
of multilibs for defunct ISAs.  This one is also extra safe, since 
moving to medany shouldn't break any users (aside from maybe a slight 
performance issue).

Are you aiming for GCC-13 with this?  I wouldn't be opposed to that: 
there's some risk of breaking users this late in the process, but my 
guess is that most of them aren't looking until release anyway.  Still 
better to hold off, but if there's something in RTEMS land that benefits 
from this being early then I think it's fine.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [gcc] RTEMS: Tune multilib selection
  2023-02-23 18:38 ` Palmer Dabbelt
@ 2023-02-24  6:23   ` Sebastian Huber
  0 siblings, 0 replies; 3+ messages in thread
From: Sebastian Huber @ 2023-02-24  6:23 UTC (permalink / raw)
  To: Palmer Dabbelt; +Cc: devel, gcc-patches

On 23.02.23 19:38, Palmer Dabbelt wrote:
> On Thu, 23 Feb 2023 03:48:26 PST (-0800), 
> sebastian.huber@embedded-brains.de wrote:
>> gcc/ChangeLog:
>>
>>     * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
>>     Add non-compact 32-bit multilibs.
>> ---
>>  gcc/config/riscv/t-rtems | 17 +++++++++--------
>>  1 file changed, 9 insertions(+), 8 deletions(-)
>>
>> diff --git a/gcc/config/riscv/t-rtems b/gcc/config/riscv/t-rtems
>> index 41f5927fc87..19b12030895 100644
>> --- a/gcc/config/riscv/t-rtems
>> +++ b/gcc/config/riscv/t-rtems
>> @@ -1,8 +1,8 @@
>>  MULTILIB_OPTIONS    =
>>  MULTILIB_DIRNAMES    =
>>
>> -MULTILIB_OPTIONS    += 
>> march=rv32i/march=rv32im/march=rv32imafd/march=rv32iac/march=rv32imac/march=rv32imafc/march=rv64imafd/march=rv64imac/march=rv64imafdc
>> -MULTILIB_DIRNAMES    += rv32i       rv32im       rv32imafd 
>> rv32iac       rv32imac       rv32imafc       rv64imafd rv64imac       
>> rv64imafdc
>> +MULTILIB_OPTIONS    += 
>> march=rv32i/march=rv32iac/march=rv32im/march=rv32ima/march=rv32imac/march=rv32imaf/march=rv32imafc/march=rv32imafd/march=rv32imafdc/march=rv64ima/march=rv64imac/march=rv64imafd/march=rv64imafdc
>> +MULTILIB_DIRNAMES    += rv32i       rv32iac       rv32im 
>> rv32ima       rv32imac       rv32imaf       rv32imafc rv32imafd       
>> rv32imafdc       rv64ima       rv64imac rv64imafd       rv64imafdc
>>
>>  MULTILIB_OPTIONS    += 
>> mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d
>>  MULTILIB_DIRNAMES    += ilp32      ilp32f      ilp32d      lp64      
>> lp64d
>> @@ -12,14 +12,15 @@ MULTILIB_DIRNAMES    += medany
>>
>>  MULTILIB_REQUIRED    =
>>  MULTILIB_REQUIRED    += march=rv32i/mabi=ilp32
>> -MULTILIB_REQUIRED    += march=rv32im/mabi=ilp32
>> -MULTILIB_REQUIRED    += march=rv32imafd/mabi=ilp32d
>>  MULTILIB_REQUIRED    += march=rv32iac/mabi=ilp32
>> +MULTILIB_REQUIRED    += march=rv32im/mabi=ilp32
>> +MULTILIB_REQUIRED    += march=rv32ima/mabi=ilp32
>>  MULTILIB_REQUIRED    += march=rv32imac/mabi=ilp32
>> +MULTILIB_REQUIRED    += march=rv32imaf/mabi=ilp32f
>>  MULTILIB_REQUIRED    += march=rv32imafc/mabi=ilp32f
>> -MULTILIB_REQUIRED    += march=rv64imafd/mabi=lp64d
>> -MULTILIB_REQUIRED    += march=rv64imafd/mabi=lp64d/mcmodel=medany
>> -MULTILIB_REQUIRED    += march=rv64imac/mabi=lp64
>> +MULTILIB_REQUIRED    += march=rv32imafd/mabi=ilp32d
>> +MULTILIB_REQUIRED    += march=rv32imafdc/mabi=ilp32d
>> +MULTILIB_REQUIRED    += march=rv64ima/mabi=lp64/mcmodel=medany
>>  MULTILIB_REQUIRED    += march=rv64imac/mabi=lp64/mcmodel=medany
>> -MULTILIB_REQUIRED    += march=rv64imafdc/mabi=lp64d
>> +MULTILIB_REQUIRED    += march=rv64imafd/mabi=lp64d/mcmodel=medany
>>  MULTILIB_REQUIRED    += march=rv64imafdc/mabi=lp64d/mcmodel=medany
> 
> Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
> 
> IMO it's fine to remove multilibs from the default set.  It could be 
> seen as breaking users, but IIRC last time we talked about something 
> like this it was OK as otherwise we're going to end up with a huge set 
> of multilibs for defunct ISAs.  This one is also extra safe, since 
> moving to medany shouldn't break any users (aside from maybe a slight 
> performance issue).

Thanks for the review. Which performance issue may show up here?
> 
> Are you aiming for GCC-13 with this?  I wouldn't be opposed to that: 
> there's some risk of breaking users this late in the process, but my 
> guess is that most of them aren't looking until release anyway.  Still 
> better to hold off, but if there's something in RTEMS land that benefits 
> from this being early then I think it's fine.

RTEMS has its own release cycle, so I would back port this change to all 
GCC branches which may be used with RTEMS 6 and this is GCC 10 or later.

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-02-24  6:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-23 11:48 [gcc] RTEMS: Tune multilib selection Sebastian Huber
2023-02-23 18:38 ` Palmer Dabbelt
2023-02-24  6:23   ` Sebastian Huber

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).