* [bug#69581] [PATCH 00/11] CPU tuning patches @ 2024-03-06 11:03 Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable Efraim Flashner ` (11 more replies) 0 siblings, 12 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:03 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner This series corrects the remaining x86_64-v* to x86-64-v*, which is what the compiler expects. It also removes x86-64-v1, which is the baseline, and instead inserts x86-64. Software for i686 running on x86_64 can still benefit from the tuning from x86_64, so I've added those options for gcc. I've added support for tuning rust packages, and I've marked rav1e as tunable since it apparently shows a large boost when tuned to newer hardware. I've also added opus and libvorbis since they benefit greatly, and syncthing since, beyond syncing, there is a lot of other hashing and whatnot that it does that benefits from tuning. I've updated the llvm micro-architecture list for x86_64, and I've added for powerpc64le. I was going to add for aarch64 but it only supports listing specific chips so that didn't fit with what we have elsewhere. Efraim Flashner (11): gnu: opus: Mark as tunable. gnu: libvorbis: Mark as tunable. guix: cpu: Be consistent with x86_64 micro-architecture names. guix: cpu: Rename x86-64-v1 to x86-64. guix: cpu: Enable tuning for i686-linux. gnu: syncthing: Mark as tunable. gnu: rust: Add tuning information. transformations: Add support for rust. gnu: rav1e: Mark as tunable. gnu: clang-properties: Update x86_64 micro-architectures. gnu: clang-properties: Add micro-architecture support for powerpc64le. gnu/packages/gcc.scm | 7 +- gnu/packages/golang.scm | 3 +- gnu/packages/llvm.scm | 127 +++++++++++++++++++------------------ gnu/packages/rust.scm | 4 +- gnu/packages/syncthing.scm | 3 +- gnu/packages/video.scm | 1 + gnu/packages/xiph.scm | 2 + guix/cpu.scm | 24 +++---- guix/transformations.scm | 8 ++- 9 files changed, 101 insertions(+), 78 deletions(-) base-commit: f3ea06baca2b96cd20170616fd5da13ec2daac54 -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 17:49 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 02/11] gnu: libvorbis: " Efraim Flashner ` (10 subsequent siblings) 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner * gnu/packages/xiph.scm (opus)[properties]: Mark package as tunable. Change-Id: I5df964b5692c6f390eef55d780810b03d6a895dc --- gnu/packages/xiph.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index b47c718fb6..84b8ccb273 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -345,6 +345,7 @@ (define-public opus but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.") + (properties `((tunable? . #t))) (license license:bsd-3) (home-page "https://www.opus-codec.org"))) -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable. 2024-03-06 11:06 ` [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable Efraim Flashner @ 2024-03-06 17:49 ` Ludovic Courtès 0 siblings, 0 replies; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 17:49 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Hello! Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/xiph.scm (opus)[properties]: Mark package as tunable. > > Change-Id: I5df964b5692c6f390eef55d780810b03d6a895dc [...] > + (properties `((tunable? . #t))) It would be great if there could be a one-line comment above stating why this makes sense, as is done for ‘eigen-benchmarks’ and ‘b2sum’, for example. Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 02/11] gnu: libvorbis: Mark as tunable. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names Efraim Flashner ` (9 subsequent siblings) 11 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner * gnu/packages/xiph.scm (libvorbis)[properties]: Mark package as tunable. Change-Id: Ie378a8c671ba6408a137e3c27824cb17671cafe3 --- gnu/packages/xiph.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 84b8ccb273..4eff0a3877 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -97,6 +97,7 @@ (define-public libvorbis compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel.") + (properties `((tunable? . #t))) (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")) (home-page "https://xiph.org/vorbis/"))) -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 02/11] gnu: libvorbis: " Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 17:53 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 04/11] guix: cpu: Rename x86-64-v1 to x86-64 Efraim Flashner ` (8 subsequent siblings) 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581 Cc: Efraim Flashner, Christopher Baines, Josselin Poiret, Ludovic Courtès, Mathieu Othacehe, Ricardo Wurmus, Simon Tournier, Tobias Geerinckx-Rice * gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Rename micro-architectures from x86_64-v* to x86-64-v*. * guix/cpu.scm (cpu->gcc-architecture): Return x86-64 as the fallback. (cpu->micro-architecture-level): Rename micro-architectures from x86_64-v* to x86-64-v*. (gcc-architecture->micro-architecture-level): Same. Change-Id: I37db65970417c22699ae8097b0361bccf76c1267 --- gnu/packages/golang.scm | 2 +- guix/cpu.scm | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 0bcd231a93..d781cc6055 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -870,7 +870,7 @@ (define-public go-1.17 ("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures)))))) (define %go-1.18-x86_64-micro-architectures - (list "x86_64-v1" "x86_64-v2" "x86_64-v3" "x86_64-v4")) + (list "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4")) (define-public go-1.18 (package diff --git a/guix/cpu.scm b/guix/cpu.scm index e80b74f161..b69c9b5360 100644 --- a/guix/cpu.scm +++ b/guix/cpu.scm @@ -200,7 +200,7 @@ (define (cpu->gcc-architecture cpu) ;; TODO: Recognize CENTAUR/CYRIX/NSC? - "x86_64"))) + "x86-64"))) ("aarch64" ;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def ;; What to do with big.LITTLE cores? @@ -290,12 +290,12 @@ (define (cpu->micro-architecture-level cpu) ;; v2: CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 ("avx512f" "avx512bw" "abx512cd" "abx512dq" "avx512vl" "avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe" - "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v4") + "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v4") ("avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe" - "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v3") - ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86_64-v2") - (_ => "x86_64-v1"))) - "x86_64-v1")) + "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v3") + ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v2") + (_ => "x86-64-v1"))) + "x86-64-v1")) (architecture ;; TODO: More architectures architecture))) @@ -304,22 +304,22 @@ (define (gcc-architecture->micro-architecture-level gcc-architecture) "Return a matching psABI micro-architecture, allowing optimizations for x86_64 CPUs for compilers which don't allow for more focused optimizing." ;; Matching gcc-architectures isn't an easy task, with the rule-of-thumb being - ;; AVX512F+ for x86_64-v4, AVX+ for x86_64-v3. + ;; AVX512F+ for x86-64-v4, AVX+ for x86-64-v3. ;; https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex (match gcc-architecture ((or "graniterapids-d" "graniterapids" "tigerlake" "sapphirerapids" "cooperlake" "icelake-server" "icelake-client" "cannonlake" "knm" "knl" "skylake-avx512" "znver4") - "x86_64-v4") + "x86-64-v4") ((or "pantherlake" "clearwaterforest" "arrowlake-s" "sierraforest" "alderlake" "skylake" "broadwell" "haswell" "znver3" "znver2" "znver1" "bdver4") - "x86_64-v3") + "x86-64-v3") ((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont" "nehalem" "bonnell" "core2" "btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1" "amdfam10" "lujiazui" "yongfeng" "x86-64") - "x86_64-v1") + "x86-64-v1") (_ gcc-architecture))) -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names. 2024-03-06 11:06 ` [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names Efraim Flashner @ 2024-03-06 17:53 ` Ludovic Courtès 2024-03-07 9:11 ` Efraim Flashner 0 siblings, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 17:53 UTC (permalink / raw) To: Efraim Flashner Cc: Josselin Poiret, Simon Tournier, Mathieu Othacehe, 69581, Tobias Geerinckx-Rice, Ricardo Wurmus, Christopher Baines Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Rename > micro-architectures from x86_64-v* to x86-64-v*. > * guix/cpu.scm (cpu->gcc-architecture): Return x86-64 as the fallback. > (cpu->micro-architecture-level): Rename micro-architectures from > x86_64-v* to x86-64-v*. > (gcc-architecture->micro-architecture-level): Same. > > Change-Id: I37db65970417c22699ae8097b0361bccf76c1267 LGTM. Do I get it right that with the previous names, those procedures were incorrect, because the underscore names are not recognized by GCC? BTW, you can drop “guix:” from the first line of the commit log. Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names. 2024-03-06 17:53 ` Ludovic Courtès @ 2024-03-07 9:11 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:11 UTC (permalink / raw) To: Ludovic Courtès Cc: Josselin Poiret, Simon Tournier, Mathieu Othacehe, 69581, Tobias Geerinckx-Rice, Ricardo Wurmus, Christopher Baines [-- Attachment #1: Type: text/plain, Size: 1124 bytes --] On Wed, Mar 06, 2024 at 06:53:24PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > * gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Rename > > micro-architectures from x86_64-v* to x86-64-v*. > > * guix/cpu.scm (cpu->gcc-architecture): Return x86-64 as the fallback. > > (cpu->micro-architecture-level): Rename micro-architectures from > > x86_64-v* to x86-64-v*. > > (gcc-architecture->micro-architecture-level): Same. > > > > Change-Id: I37db65970417c22699ae8097b0361bccf76c1267 > > LGTM. > > Do I get it right that with the previous names, those procedures were > incorrect, because the underscore names are not recognized by GCC? > > BTW, you can drop “guix:” from the first line of the commit log. All our compilers expect a dash instead of an underscore, except for go which doesn't care since we only need the v[234]. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 04/11] guix: cpu: Rename x86-64-v1 to x86-64. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (2 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 17:59 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux Efraim Flashner ` (7 subsequent siblings) 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581 Cc: Efraim Flashner, Christopher Baines, Josselin Poiret, Ludovic Courtès, Mathieu Othacehe, Ricardo Wurmus, Simon Tournier, Tobias Geerinckx-Rice This is the actual micro-architecture designation used by compilers. * gnu/packages/gcc.scm (%gcc-11-x86_64-micro-architectures): Rename x86-64-v1 to x86-64. * gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Same. * guix/cpu.scm (cpu->micro-architecture-level): Same. (gcc-architecture->micro-architecture-level): Same. Change-Id: I19ed556a7e8deb4a77f4c63fca3b794f25092788 --- gnu/packages/gcc.scm | 2 +- gnu/packages/golang.scm | 3 ++- guix/cpu.scm | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 3abecdeadd..3555d12c44 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -624,7 +624,7 @@ (define %gcc-11-x86_64-micro-architectures "btver1" "btver2" ;AMD ;; psABI micro-architecture levels - "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4"))) + "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))) ;; Suitable '-march' values for GCC 12. (define %gcc-12-aarch64-micro-architectures diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d781cc6055..c4ae3a4673 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -870,7 +870,8 @@ (define-public go-1.17 ("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures)))))) (define %go-1.18-x86_64-micro-architectures - (list "x86-64-v1" "x86-64-v2" "x86-64-v3" "x86-64-v4")) + ;; GOAMD defaults to 'v1' so we match the default elsewhere. + (list "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")) (define-public go-1.18 (package diff --git a/guix/cpu.scm b/guix/cpu.scm index b69c9b5360..6f9e8daa61 100644 --- a/guix/cpu.scm +++ b/guix/cpu.scm @@ -294,8 +294,8 @@ (define (cpu->micro-architecture-level cpu) ("avx" "avx2" "bmi1" "bmi2" "f16c" "fma" "movbe" "popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v3") ("popcnt" "sse3" "sse4_1" "sse4_2" "ssse3" => "x86-64-v2") - (_ => "x86-64-v1"))) - "x86-64-v1")) + (_ => "x86-64"))) + "x86-64")) (architecture ;; TODO: More architectures architecture))) @@ -321,5 +321,5 @@ (define (gcc-architecture->micro-architecture-level gcc-architecture) "btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1" "amdfam10" "lujiazui" "yongfeng" "x86-64") - "x86-64-v1") + "x86-64") (_ gcc-architecture))) -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 04/11] guix: cpu: Rename x86-64-v1 to x86-64. 2024-03-06 11:06 ` [bug#69581] [PATCH 04/11] guix: cpu: Rename x86-64-v1 to x86-64 Efraim Flashner @ 2024-03-06 17:59 ` Ludovic Courtès 0 siblings, 0 replies; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 17:59 UTC (permalink / raw) To: Efraim Flashner Cc: Josselin Poiret, Simon Tournier, Mathieu Othacehe, 69581, Tobias Geerinckx-Rice, Ricardo Wurmus, Christopher Baines Efraim Flashner <efraim@flashner.co.il> skribis: > This is the actual micro-architecture designation used by compilers. > > * gnu/packages/gcc.scm (%gcc-11-x86_64-micro-architectures): Rename > x86-64-v1 to x86-64. > * gnu/packages/golang.scm (%go-1.18-x86_64-micro-architectures): Same. > * guix/cpu.scm (cpu->micro-architecture-level): Same. > (gcc-architecture->micro-architecture-level): Same. LGTM! ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (3 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 04/11] guix: cpu: Rename x86-64-v1 to x86-64 Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 18:05 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable Efraim Flashner ` (6 subsequent siblings) 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581 Cc: Efraim Flashner, Christopher Baines, Josselin Poiret, Ludovic Courtès, Mathieu Othacehe, Ricardo Wurmus, Simon Tournier, Tobias Geerinckx-Rice * gnu/packages/gcc.scm (gcc-7, gcc-10, gcc-11, gcc-12, gcc-13) [properties]: In compiler-cpu-architectures use the x86_64-micro-architectures list for i686. * guix/cpu.scm (cpu->gcc-architecture): Expand the x86_64 case to also support i686. Change-Id: I0b820ceb715960db5e702814fa278dc8c619a836 --- gnu/packages/gcc.scm | 5 +++++ guix/cpu.scm | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 3555d12c44..c8902de6a0 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -673,6 +673,7 @@ (define-public gcc-7 `((compiler-cpu-architectures ("aarch64" ,@%gcc-7.5-aarch64-micro-architectures) ("armhf" ,@%gcc-7.5-armhf-micro-architectures) + ("i686" ,@%gcc-7.5-x86_64-micro-architectures) ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures)) ,@(package-properties gcc-6))))) @@ -729,6 +730,7 @@ (define-public gcc-10 `((compiler-cpu-architectures ("aarch64" ,@%gcc-10-aarch64-micro-architectures) ("armhf" ,@%gcc-10-armhf-micro-architectures) + ("i686" ,@%gcc-10-x86_64-micro-architectures) ("x86_64" ,@%gcc-10-x86_64-micro-architectures)) ,@(package-properties gcc-8))))) @@ -764,6 +766,7 @@ (define-public gcc-11 `((compiler-cpu-architectures ("aarch64" ,@%gcc-11-aarch64-micro-architectures) ("armhf" ,@%gcc-11-armhf-micro-architectures) + ("i686" ,@%gcc-11-x86_64-micro-architectures) ("x86_64" ,@%gcc-11-x86_64-micro-architectures)) ,@(package-properties gcc-8))))) @@ -786,6 +789,7 @@ (define-public gcc-12 `((compiler-cpu-architectures ("aarch64" ,@%gcc-12-aarch64-micro-architectures) ("armhf" ,@%gcc-12-armhf-micro-architectures) + ("i686" ,@%gcc-12-x86_64-micro-architectures) ("x86_64" ,@%gcc-12-x86_64-micro-architectures)) ,@(package-properties gcc-11))))) @@ -808,6 +812,7 @@ (define-public gcc-13 `((compiler-cpu-architectures ("aarch64" ,@%gcc-13-aarch64-micro-architectures) ("armhf" ,@%gcc-13-armhf-micro-architectures) + ("i686" ,@%gcc-13-x86_64-micro-architectures) ("x86_64" ,@%gcc-13-x86_64-micro-architectures)) ,@(package-properties gcc-11))))) diff --git a/guix/cpu.scm b/guix/cpu.scm index 6f9e8daa61..840215cff0 100644 --- a/guix/cpu.scm +++ b/guix/cpu.scm @@ -113,7 +113,7 @@ (define (cpu->gcc-architecture cpu) "Return the architecture name, suitable for GCC's '-march' flag, that corresponds to CPU, a record as returned by 'current-cpu'." (match (cpu-architecture cpu) - ("x86_64" + ((or "x86_64" "i686") ;; Transcribed from GCC's 'host_detect_local_cpu' in driver-i386.cc. (letrec-syntax ((if-flags (syntax-rules (=>) ((_) @@ -200,7 +200,9 @@ (define (cpu->gcc-architecture cpu) ;; TODO: Recognize CENTAUR/CYRIX/NSC? - "x86-64"))) + (match (cpu-architecture cpu) + ("x86_64" "x86-64") + (_ "generic"))))) ("aarch64" ;; Transcribed from GCC's list of aarch64 processors in aarch64-cores.def ;; What to do with big.LITTLE cores? -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux. 2024-03-06 11:06 ` [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux Efraim Flashner @ 2024-03-06 18:05 ` Ludovic Courtès 2024-03-07 9:09 ` Efraim Flashner 0 siblings, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:05 UTC (permalink / raw) To: Efraim Flashner Cc: Josselin Poiret, Simon Tournier, Mathieu Othacehe, 69581, Tobias Geerinckx-Rice, Ricardo Wurmus, Christopher Baines Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/gcc.scm (gcc-7, gcc-10, gcc-11, gcc-12, gcc-13) > [properties]: In compiler-cpu-architectures use the > x86_64-micro-architectures list for i686. > * guix/cpu.scm (cpu->gcc-architecture): Expand the x86_64 case to also > support i686. [...] > +++ b/gnu/packages/gcc.scm > @@ -673,6 +673,7 @@ (define-public gcc-7 > `((compiler-cpu-architectures > ("aarch64" ,@%gcc-7.5-aarch64-micro-architectures) > ("armhf" ,@%gcc-7.5-armhf-micro-architectures) > + ("i686" ,@%gcc-7.5-x86_64-micro-architectures) > ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures)) Wait, that wouldn’t work on an actual i686 CPU, right? I was surprised to see that GCC built for i686 accepts those flags: guix shell -s i686-linux gcc-toolchain -- gcc -march=skylake /tmp/t.c guix shell -s i686-linux gcc-toolchain -- gcc -march=x86-64-v4 /tmp/t.c If GCC agrees, so be it. LGTM! ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux. 2024-03-06 18:05 ` Ludovic Courtès @ 2024-03-07 9:09 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:09 UTC (permalink / raw) To: Ludovic Courtès Cc: Josselin Poiret, Simon Tournier, Mathieu Othacehe, 69581, Tobias Geerinckx-Rice, Ricardo Wurmus, Christopher Baines [-- Attachment #1: Type: text/plain, Size: 1495 bytes --] On Wed, Mar 06, 2024 at 07:05:03PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > * gnu/packages/gcc.scm (gcc-7, gcc-10, gcc-11, gcc-12, gcc-13) > > [properties]: In compiler-cpu-architectures use the > > x86_64-micro-architectures list for i686. > > * guix/cpu.scm (cpu->gcc-architecture): Expand the x86_64 case to also > > support i686. > > [...] > > > +++ b/gnu/packages/gcc.scm > > @@ -673,6 +673,7 @@ (define-public gcc-7 > > `((compiler-cpu-architectures > > ("aarch64" ,@%gcc-7.5-aarch64-micro-architectures) > > ("armhf" ,@%gcc-7.5-armhf-micro-architectures) > > + ("i686" ,@%gcc-7.5-x86_64-micro-architectures) > > ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures)) > > Wait, that wouldn’t work on an actual i686 CPU, right? > > I was surprised to see that GCC built for i686 accepts those flags: > > guix shell -s i686-linux gcc-toolchain -- gcc -march=skylake /tmp/t.c > guix shell -s i686-linux gcc-toolchain -- gcc -march=x86-64-v4 /tmp/t.c > > If GCC agrees, so be it. LGTM! I checked with `guix build foo --system=i686-linux --tune=znver2` and everything just worked. That's definitely a Guix special, since we don't have multilib support. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (4 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 18:06 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information Efraim Flashner ` (5 subsequent siblings) 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner, Katherine Cox-Buday, Sharlatan Hellseher * gnu/packages/syncthing.scm (syncthing)[properties]: Mark package as tunable. Change-Id: Ia885bbd32f043e83b231359cca438ea9caf4e8dc --- gnu/packages/syncthing.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index d09b03bcdb..6986642b73 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -129,7 +129,8 @@ (define-public syncthing (home-page "https://github.com/syncthing/syncthing") (properties '((release-monitoring-url . "https://syncthing.net/downloads/") - (upstream-name . "syncthing-source"))) + (upstream-name . "syncthing-source") + (tunable? . #t))) (license mpl2.0))) (define-public syncthing-gtk -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable. 2024-03-06 11:06 ` [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable Efraim Flashner @ 2024-03-06 18:06 ` Ludovic Courtès 2024-03-07 9:09 ` Efraim Flashner 0 siblings, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:06 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581, Katherine Cox-Buday, Sharlatan Hellseher Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/syncthing.scm (syncthing)[properties]: Mark package as > tunable. [...] > + (tunable? . #t))) I’m skeptical; why would a backup program benefit from vector ISA extensions? Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable. 2024-03-06 18:06 ` Ludovic Courtès @ 2024-03-07 9:09 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:09 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581, Katherine Cox-Buday, Sharlatan Hellseher [-- Attachment #1: Type: text/plain, Size: 922 bytes --] On Wed, Mar 06, 2024 at 07:06:04PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > * gnu/packages/syncthing.scm (syncthing)[properties]: Mark package as > > tunable. > > [...] > > > + (tunable? . #t))) > > I’m skeptical; why would a backup program benefit from vector ISA > extensions? There's a fair amount of hashing and other bits that happen in syncthing, not just sending files over the network. IIRC when the GOAMD support was added hashing was specifically shown to have a massive boost from targeting newer micro-architectures. Also this is the package I always end up enabling tuning on when experimenting with tuning and go. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (5 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 18:09 ` Ludovic Courtès 2024-03-06 18:10 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 08/11] transformations: Add support for rust Efraim Flashner ` (4 subsequent siblings) 11 siblings, 2 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner, Efraim Flashner * gnu/packages/rust.scm (rust)[properties]: Add clang-properties matching the input llvm package. Change-Id: Ie2ef2387fff8aa639dcd73752bcaf3c26bbb376d --- gnu/packages/rust.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 1f129a93bd..68917ee5e8 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -964,7 +964,9 @@ (define-public rust (let ((base-rust rust-1.75)) (package (inherit base-rust) - (properties (alist-delete 'hidden? (package-properties base-rust))) + (properties `(`(append + ,(alist-delete 'hidden? (package-properties base-rust)) + ,@(clang-properties "15")))) (outputs (cons* "rust-src" "tools" (package-outputs base-rust))) (source (origin -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-06 11:06 ` [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information Efraim Flashner @ 2024-03-06 18:09 ` Ludovic Courtès 2024-03-07 9:09 ` Efraim Flashner 2024-03-06 18:10 ` Ludovic Courtès 1 sibling, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:09 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/rust.scm (rust)[properties]: Add clang-properties > matching the input llvm package. > > Change-Id: Ie2ef2387fff8aa639dcd73752bcaf3c26bbb376d Hmm rustc actually uses LLVM for code generation? I’m a bit lost. Anyway, if it supports those same flags as Clang, all good; maybe add a comment to say so explicitly. > + (properties `(`(append > + ,(alist-delete 'hidden? (package-properties base-rust)) > + ,@(clang-properties "15")))) I think you meant: (properties (append (alist-delete 'hidden? (package-properties base-rust)) (clang-properties "15"))) Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-06 18:09 ` Ludovic Courtès @ 2024-03-07 9:09 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:09 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1: Type: text/plain, Size: 1342 bytes --] On Wed, Mar 06, 2024 at 07:09:32PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > * gnu/packages/rust.scm (rust)[properties]: Add clang-properties > > matching the input llvm package. > > > > Change-Id: Ie2ef2387fff8aa639dcd73752bcaf3c26bbb376d > > Hmm rustc actually uses LLVM for code generation? I’m a bit lost. > Anyway, if it supports those same flags as Clang, all good; maybe add a > comment to say so explicitly. It supports the same target_cpu targets as clang does. With llvm switching to a monorepo they've apparently done a better job about syncing the list between llvm and clang. > > + (properties `(`(append > > + ,(alist-delete 'hidden? (package-properties base-rust)) > > + ,@(clang-properties "15")))) > > I think you meant: > > (properties (append (alist-delete 'hidden? (package-properties base-rust)) > (clang-properties "15"))) I would love to have it cleaner like this. There was a lot of trial and error to end up with what I had above. I'll try that. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-06 11:06 ` [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information Efraim Flashner 2024-03-06 18:09 ` Ludovic Courtès @ 2024-03-06 18:10 ` Ludovic Courtès 2024-03-07 9:10 ` Efraim Flashner 1 sibling, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:10 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Efraim Flashner <efraim@flashner.co.il> skribis: > + (properties `(`(append > + ,(alist-delete 'hidden? (package-properties base-rust)) > + ,@(clang-properties "15")))) Just realized that we cannot really call ‘clang-properties’ from here because ‘properties’ is not a thunked field, so this would lead to a top-level circular dependency… You might need to duplicate the info. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-06 18:10 ` Ludovic Courtès @ 2024-03-07 9:10 ` Efraim Flashner 2024-03-07 21:38 ` Ludovic Courtès 0 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:10 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1: Type: text/plain, Size: 952 bytes --] On Wed, Mar 06, 2024 at 07:10:54PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > + (properties `(`(append > > + ,(alist-delete 'hidden? (package-properties base-rust)) > > + ,@(clang-properties "15")))) > > Just realized that we cannot really call ‘clang-properties’ from here > because ‘properties’ is not a thunked field, so this would lead to a > top-level circular dependency… You might need to duplicate the info. We also use the list for zig. Considering we're only supporting one version for rust duplicating the information wouldn't be the worst thing but it'd be better to only have it declared in one spot. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-07 9:10 ` Efraim Flashner @ 2024-03-07 21:38 ` Ludovic Courtès 2024-03-08 12:05 ` Efraim Flashner 0 siblings, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-07 21:38 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Efraim Flashner <efraim@flashner.co.il> skribis: > On Wed, Mar 06, 2024 at 07:10:54PM +0100, Ludovic Courtès wrote: >> Efraim Flashner <efraim@flashner.co.il> skribis: >> >> > + (properties `(`(append >> > + ,(alist-delete 'hidden? (package-properties base-rust)) >> > + ,@(clang-properties "15")))) >> >> Just realized that we cannot really call ‘clang-properties’ from here >> because ‘properties’ is not a thunked field, so this would lead to a >> top-level circular dependency… You might need to duplicate the info. > > We also use the list for zig. > > Considering we're only supporting one version for rust duplicating the > information wouldn't be the worst thing but it'd be better to only have > it declared in one spot. Then it should be declared in a module that’s not in a cycle with its users (that’s annoying!). Maybe a separate ‘llvm-meta.scm’? Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-07 21:38 ` Ludovic Courtès @ 2024-03-08 12:05 ` Efraim Flashner 2024-03-08 21:57 ` Ludovic Courtès 0 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-08 12:05 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1: Type: text/plain, Size: 1576 bytes --] On Thu, Mar 07, 2024 at 10:38:06PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > On Wed, Mar 06, 2024 at 07:10:54PM +0100, Ludovic Courtès wrote: > >> Efraim Flashner <efraim@flashner.co.il> skribis: > >> > >> > + (properties `(`(append > >> > + ,(alist-delete 'hidden? (package-properties base-rust)) > >> > + ,@(clang-properties "15")))) > >> > >> Just realized that we cannot really call ‘clang-properties’ from here > >> because ‘properties’ is not a thunked field, so this would lead to a > >> top-level circular dependency… You might need to duplicate the info. > > > > We also use the list for zig. > > > > Considering we're only supporting one version for rust duplicating the > > information wouldn't be the worst thing but it'd be better to only have > > it declared in one spot. > > Then it should be declared in a module that’s not in a cycle with its > users (that’s annoying!). Maybe a separate ‘llvm-meta.scm’? How about moving it into (guix cpu) together with the ones from gcc? There are apparently some CPUs that are identical but have different names that we could map together and would allow us to make any changes to them in one place. We've already pretty much done that with the search paths. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-08 12:05 ` Efraim Flashner @ 2024-03-08 21:57 ` Ludovic Courtès 2024-03-10 8:26 ` Efraim Flashner 0 siblings, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-08 21:57 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Hi, Efraim Flashner <efraim@flashner.co.il> skribis: > On Thu, Mar 07, 2024 at 10:38:06PM +0100, Ludovic Courtès wrote: [...] >> Then it should be declared in a module that’s not in a cycle with its >> users (that’s annoying!). Maybe a separate ‘llvm-meta.scm’? > > How about moving it into (guix cpu) together with the ones from gcc? > There are apparently some CPUs that are identical but have different > names that we could map together and would allow us to make any changes > to them in one place. We've already pretty much done that with the > search paths. To me, the whole point of the ‘compiler-cpu-architectures’ property is that this info can be stored in the compiler package itself rather than in some remote unrelated place (the same goes for search paths). My instinct would be to preserve that, hence the suggestion of a new (gnu packages llvm-meta) or (… llvm-infra) module, something like that. We should also keep in mind that those CPU names are those defined by compilers themselves; they don’t have to match the vendor-chosen name or the name chosen by some other compiler. WDYT? Does that make sense? Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information. 2024-03-08 21:57 ` Ludovic Courtès @ 2024-03-10 8:26 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-10 8:26 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1: Type: text/plain, Size: 1800 bytes --] On Fri, Mar 08, 2024 at 10:57:03PM +0100, Ludovic Courtès wrote: > Hi, > > Efraim Flashner <efraim@flashner.co.il> skribis: > > > On Thu, Mar 07, 2024 at 10:38:06PM +0100, Ludovic Courtès wrote: > > [...] > > >> Then it should be declared in a module that’s not in a cycle with its > >> users (that’s annoying!). Maybe a separate ‘llvm-meta.scm’? > > > > How about moving it into (guix cpu) together with the ones from gcc? > > There are apparently some CPUs that are identical but have different > > names that we could map together and would allow us to make any changes > > to them in one place. We've already pretty much done that with the > > search paths. > > To me, the whole point of the ‘compiler-cpu-architectures’ property is > that this info can be stored in the compiler package itself rather than > in some remote unrelated place (the same goes for search paths). My > instinct would be to preserve that, hence the suggestion of a new (gnu > packages llvm-meta) or (… llvm-infra) module, something like that. > > We should also keep in mind that those CPU names are those defined by > compilers themselves; they don’t have to match the vendor-chosen name or > the name chosen by some other compiler. > > WDYT? Does that make sense? That makes sense to me. I'm also going to look at moving system->llvm-target to llvm-meta. I think its used with dlang.scm and maybe elsewhere, or could be used at least. All these languages using llvm as a backend means we keep on wanting to use these functions elsewhere. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 08/11] transformations: Add support for rust. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (6 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 18:11 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 09/11] gnu: rav1e: Mark as tunable Efraim Flashner ` (3 subsequent siblings) 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581 Cc: Efraim Flashner, Christopher Baines, Josselin Poiret, Ludovic Courtès, Mathieu Othacehe, Ricardo Wurmus, Simon Tournier, Tobias Geerinckx-Rice * guix/transformations.scm (tuning-compiler): Add support for rustc. Change-Id: I6db596a586eda648666550cdcadaa5e1704cb79c --- guix/transformations.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/transformations.scm b/guix/transformations.scm index 132ccd957a..f02b9f94d6 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2023 Sarthak Shah <shahsarthakw@gmail.com> -;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2023, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; ;;; This file is part of GNU Guix. @@ -499,6 +499,10 @@ (define tuning-compiler "-Dcpu=" (string-replace-substring #$micro-architecture "-" "_")))) + ((and (search-next "rustc") + (string=? next (search-next "rustc"))) + (list "-C" (string-append "target_cpu=" + #$micro-architecture))) (else (list (string-append "-march=" #$micro-architecture)))))))))))) @@ -519,7 +523,7 @@ (define tuning-compiler (symlink #$program (string-append bin "/" program))) '("cc" "gcc" "clang" "g++" "c++" "clang++" - "go" "zig"))))))) + "go" "rustc" "zig"))))))) (define (build-system-with-tuning-compiler bs micro-architecture) "Return a variant of BS, a build system, that ensures that the compiler that -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 08/11] transformations: Add support for rust. 2024-03-06 11:06 ` [bug#69581] [PATCH 08/11] transformations: Add support for rust Efraim Flashner @ 2024-03-06 18:11 ` Ludovic Courtès 0 siblings, 0 replies; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:11 UTC (permalink / raw) To: Efraim Flashner Cc: Josselin Poiret, Simon Tournier, Mathieu Othacehe, 69581, Tobias Geerinckx-Rice, Ricardo Wurmus, Christopher Baines Efraim Flashner <efraim@flashner.co.il> skribis: > * guix/transformations.scm (tuning-compiler): Add support for rustc. > > Change-Id: I6db596a586eda648666550cdcadaa5e1704cb79c LGTM! ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 09/11] gnu: rav1e: Mark as tunable. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (7 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 08/11] transformations: Add support for rust Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures Efraim Flashner ` (2 subsequent siblings) 11 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner * gnu/packages/video.scm (rav1e)[properties]: Mark package as tunable. Change-Id: Icaf3615ce6f1e76416543a1285af5f1fdaec3589 --- gnu/packages/video.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 925f5ff83b..1b57c0fdd6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -5948,6 +5948,7 @@ (define-public rav1e (description "@code{rav1e} is an AV1 video encoder. It is designed to eventually cover all use cases, though in its current form it is most suitable for cases where libaom (the reference encoder) is too slow.") + (properties `((tunable? . #t))) (license license:bsd-2))) (define-public peek -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (8 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 09/11] gnu: rav1e: Mark as tunable Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 18:12 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 11/11] gnu: clang-properties: Add micro-architecture support for powerpc64le Efraim Flashner [not found] ` <handler.69581.B.170972307319660.ack@debbugs.gnu.org> 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner * gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for versions 17, 16, 15, 13, 9 and remove entry for version 10. Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd --- gnu/packages/llvm.scm | 122 +++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 2778d0ec38..2567405cb4 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -482,67 +482,67 @@ (define* (clang-from-llvm llvm clang-runtime (define (clang-properties version) "Return package properties for Clang VERSION." `((compiler-cpu-architectures - ("x86_64" - ;; This list was obtained by running: - ;; - ;; guix shell clang -- llc -march=x86-64 -mattr=help - ;; - ;; filtered from uninteresting entries such as "i686" and "pentium". - ,@(if (version>=? version "10.0") ;TODO: refine - '("atom" - "barcelona" - "bdver1" - "bdver2" - "bdver3" - "bdver4" - "bonnell" - "broadwell" - "btver1" - "btver2" - "c3" - "c3-2" - "cannonlake" - "cascadelake" - "cooperlake" - "core-avx-i" - "core-avx2" - "core2" - "corei7" - "corei7-avx" - "generic" - "geode" - "goldmont" - "goldmont-plus" - "haswell" - "icelake-client" - "icelake-server" - "ivybridge" - "k8" - "k8-sse3" - "knl" - "knm" - "lakemont" - "nehalem" - "nocona" - "opteron" - "opteron-sse3" - "sandybridge" - "silvermont" - "skx" - "skylake" - "skylake-avx512" - "slm" - "tigerlake" - "tremont" - "westmere" - "x86-64" - "x86-64-v2" - "x86-64-v3" - "x86-64-v4" - "znver1" - "znver2" - "znver3") - '()))))) + ("x86_64" + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c + ,@(cond + ((version>=? version "17.0") + '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" + "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere" + "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell" + "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx" + "cascadelake" "cooperlake" "cannonlake" "icelake-client" + "rocketlake" "icelake-server" "tigerlake" "sapphirerapids" + "alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge" + "graniterapids" "graniterapids-d" "emeraldrapids" "knl" "knm" "k8" + "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" + "opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1" + "bdver2" "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" + "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")) + ((version>=? version "16.0") + '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" + "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere" + "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell" + "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx" + "cascadelake" "cooperlake" "cannonlake" "icelake-client" + "rocketlake" "icelake-server" "tigerlake" "sapphirerapids" + "alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge" + "graniterapids" "emeraldrapids" "knl" "knm" "k8" "athlon64" + "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3" + "amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2" + "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" "x86-64" + "x86-64-v2" "x86-64-v3" "x86-64-v4")) + ((version>=? version "15.0") + '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" + "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere" + "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell" + "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx" + "cascadelake" "cooperlake" "cannonlake" "icelake-client" + "rocketlake" "icelake-server" "tigerlake" "sapphirerapids" + "alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron" + "k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona" + "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1" + "znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")) + ((version>=? version "13.0") + '("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm" + "goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere" + "sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell" + "core-avx2" "broadwell" "skylake" "skylake-avx512" "skx" + "cascadelake" "cooperlake" "cannonlake" "icelake-client" + "rocketlake" "icelake-server" "tigerlake" "sapphirerapids" + "alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron" + "k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona" + "btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1" + "znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4")) + ((version>=? version "9.0") + '("atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont" + "nehalem" "corei7" "westmere" "sandybridge" "corei7-avx" + "ivybridge" "core-avx-i" "haswell" "core-avx2" "broadwell" + "skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake" + "cannonlake" "icelake-client" "icelake-server" "knl" "knm" "k8" + "athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" + "opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1" + "bdver2" "bdver3" "bdver4" "znver1" "znver2" "x86-64")) + (else '())))))) (define-public (make-clang-toolchain clang libomp) (package -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures. 2024-03-06 11:06 ` [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures Efraim Flashner @ 2024-03-06 18:12 ` Ludovic Courtès 2024-03-07 9:10 ` Efraim Flashner 2024-03-07 9:12 ` Efraim Flashner 0 siblings, 2 replies; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:12 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for > versions 17, 16, 15, 13, 9 and remove entry for version 10. > > Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd [...] > - ;; This list was obtained by running: > - ;; > - ;; guix shell clang -- llc -march=x86-64 -mattr=help > - ;; > - ;; filtered from uninteresting entries such as "i686" and "pentium". [...] > + ("x86_64" > + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c Does the ‘llc’ method no longer work? It looked easier. Apart from that, LGTM. Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures. 2024-03-06 18:12 ` Ludovic Courtès @ 2024-03-07 9:10 ` Efraim Flashner 2024-03-07 21:42 ` Ludovic Courtès 2024-03-07 9:12 ` Efraim Flashner 1 sibling, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:10 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1: Type: text/plain, Size: 1328 bytes --] On Wed, Mar 06, 2024 at 07:12:25PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > * gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for > > versions 17, 16, 15, 13, 9 and remove entry for version 10. > > > > Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd > > [...] > > > - ;; This list was obtained by running: > > - ;; > > - ;; guix shell clang -- llc -march=x86-64 -mattr=help > > - ;; > > - ;; filtered from uninteresting entries such as "i686" and "pentium". > > [...] > > > + ("x86_64" > > + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c > > Does the ‘llc’ method no longer work? It looked easier. > > Apart from that, LGTM. I've attached the file from llvmorg-15.0.7. I found the file easier since I didn't have to run the command from the shell and it listed all the architectures I wouldn't have even thought of looking at. And I didn't have to do any filtering myself. And it's sorted by "power" and by vendor, not alphabetically. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures. 2024-03-07 9:10 ` Efraim Flashner @ 2024-03-07 21:42 ` Ludovic Courtès 2024-03-08 12:07 ` Efraim Flashner 0 siblings, 1 reply; 36+ messages in thread From: Ludovic Courtès @ 2024-03-07 21:42 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Efraim Flashner <efraim@flashner.co.il> skribis: > On Wed, Mar 06, 2024 at 07:12:25PM +0100, Ludovic Courtès wrote: >> Efraim Flashner <efraim@flashner.co.il> skribis: >> >> > * gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for >> > versions 17, 16, 15, 13, 9 and remove entry for version 10. >> > >> > Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd >> >> [...] >> >> > - ;; This list was obtained by running: >> > - ;; >> > - ;; guix shell clang -- llc -march=x86-64 -mattr=help >> > - ;; >> > - ;; filtered from uninteresting entries such as "i686" and "pentium". >> >> [...] >> >> > + ("x86_64" >> > + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c >> >> Does the ‘llc’ method no longer work? It looked easier. >> >> Apart from that, LGTM. > > I've attached the file from llvmorg-15.0.7. I found the file easier > since I didn't have to run the command from the shell and it listed all > the architectures I wouldn't have even thought of looking at. And I > didn't have to do any filtering myself. And it's sorted by "power" and > by vendor, not alphabetically. I see. It looks convenient but that’s a unit test: it’s not the “ground truth” and it doesn’t have to match exactly what’s supported. The ‘llc’ command is likely more faithful so I would keep it at least in the comment. Ludo’. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures. 2024-03-07 21:42 ` Ludovic Courtès @ 2024-03-08 12:07 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-08 12:07 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1: Type: text/plain, Size: 2003 bytes --] On Thu, Mar 07, 2024 at 10:42:09PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > On Wed, Mar 06, 2024 at 07:12:25PM +0100, Ludovic Courtès wrote: > >> Efraim Flashner <efraim@flashner.co.il> skribis: > >> > >> > * gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for > >> > versions 17, 16, 15, 13, 9 and remove entry for version 10. > >> > > >> > Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd > >> > >> [...] > >> > >> > - ;; This list was obtained by running: > >> > - ;; > >> > - ;; guix shell clang -- llc -march=x86-64 -mattr=help > >> > - ;; > >> > - ;; filtered from uninteresting entries such as "i686" and "pentium". > >> > >> [...] > >> > >> > + ("x86_64" > >> > + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c > >> > >> Does the ‘llc’ method no longer work? It looked easier. > >> > >> Apart from that, LGTM. > > > > I've attached the file from llvmorg-15.0.7. I found the file easier > > since I didn't have to run the command from the shell and it listed all > > the architectures I wouldn't have even thought of looking at. And I > > didn't have to do any filtering myself. And it's sorted by "power" and > > by vendor, not alphabetically. > > I see. It looks convenient but that’s a unit test: it’s not the “ground > truth” and it doesn’t have to match exactly what’s supported. The ‘llc’ > command is likely more faithful so I would keep it at least in the > comment. I'll keep the original comment and compare what I've added to what's returned from the command. Then we also have an easy list to compare against when removing uninteresting options from the output. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures. 2024-03-06 18:12 ` Ludovic Courtès 2024-03-07 9:10 ` Efraim Flashner @ 2024-03-07 9:12 ` Efraim Flashner 1 sibling, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-07 9:12 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 69581 [-- Attachment #1.1: Type: text/plain, Size: 1037 bytes --] On Wed, Mar 06, 2024 at 07:12:25PM +0100, Ludovic Courtès wrote: > Efraim Flashner <efraim@flashner.co.il> skribis: > > > * gnu/packages/llvm.scm (clang-properties): Add entries on x86_64 for > > versions 17, 16, 15, 13, 9 and remove entry for version 10. > > > > Change-Id: I93149c30f011c6de8ff0cc2c2b6f0186540359cd > > [...] > > > - ;; This list was obtained by running: > > - ;; > > - ;; guix shell clang -- llc -march=x86-64 -mattr=help > > - ;; > > - ;; filtered from uninteresting entries such as "i686" and "pentium". > > [...] > > > + ("x86_64" > > + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c > > Does the ‘llc’ method no longer work? It looked easier. > > Apart from that, LGTM. Forgot to attach the file. -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #1.2: target-invalid-cpu-note.c --] [-- Type: text/plain, Size: 17259 bytes --] // Use CHECK-NEXT instead of multiple CHECK-SAME to ensure we will fail if there is anything extra in the output. // RUN: not %clang_cc1 -triple armv5--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix ARM // ARM: error: unknown target CPU 'not-a-cpu' // ARM-NEXT: note: valid target CPU values are: arm8, arm810, strongarm, strongarm110, strongarm1100, strongarm1110, arm7tdmi, arm7tdmi-s, arm710t, arm720t, arm9, arm9tdmi, arm920, arm920t, arm922t, arm940t, ep9312, arm10tdmi, arm1020t, arm9e, arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e, arm926ej-s, arm1136j-s, arm1136jf-s, mpcore, mpcorenovfp, arm1176jz-s, arm1176jzf-s, arm1156t2-s, arm1156t2f-s, cortex-m0, cortex-m0plus, cortex-m1, sc000, cortex-a5, cortex-a7, cortex-a8, cortex-a9, cortex-a12, cortex-a15, cortex-a17, krait, cortex-r4, cortex-r4f, cortex-r5, cortex-r7, cortex-r8, cortex-r52, sc300, cortex-m3, cortex-m4, cortex-m7, cortex-m23, cortex-m33, cortex-m35p, cortex-m55, cortex-m85, cortex-a32, cortex-a35, cortex-a53, cortex-a55, cortex-a57, cortex-a72, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78c, cortex-a710, cortex-x1, cortex-x1c, neoverse-n1, neoverse-n2, neoverse-v1, cyclone, exynos-m3, exynos-m4, exynos-m5, kryo, iwmmxt, xscale, swift{{$}} // RUN: not %clang_cc1 -triple arm64--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AARCH64 // AARCH64: error: unknown target CPU 'not-a-cpu' // AARCH64-NEXT: note: valid target CPU values are: cortex-a34, cortex-a35, cortex-a53, cortex-a55, cortex-a510, cortex-a57, cortex-a65, cortex-a65ae, cortex-a72, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78c, cortex-a710, cortex-r82, cortex-x1, cortex-x1c, cortex-x2, neoverse-e1, neoverse-n1, neoverse-n2, neoverse-512tvb, neoverse-v1, cyclone, apple-a7, apple-a8, apple-a9, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-m1, apple-s4, apple-s5, exynos-m3, exynos-m4, exynos-m5, falkor, saphira, kryo, thunderx2t99, thunderx3t110, thunderx, thunderxt88, thunderxt81, thunderxt83, tsv110, a64fx, carmel, ampere1{{$}} // RUN: not %clang_cc1 -triple arm64--- -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE_AARCH64 // TUNE_AARCH64: error: unknown target CPU 'not-a-cpu' // TUNE_AARCH64-NEXT: note: valid target CPU values are: cortex-a34, cortex-a35, cortex-a53, cortex-a55, cortex-a510, cortex-a57, cortex-a65, cortex-a65ae, cortex-a72, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78c, cortex-a710, cortex-r82, cortex-x1, cortex-x1c, cortex-x2, neoverse-e1, neoverse-n1, neoverse-n2, neoverse-512tvb, neoverse-v1, cyclone, apple-a7, apple-a8, apple-a9, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-m1, apple-s4, apple-s5, exynos-m3, exynos-m4, exynos-m5, falkor, saphira, kryo, thunderx2t99, thunderx3t110, thunderx, thunderxt88, thunderxt81, thunderxt83, tsv110, a64fx, carmel, ampere1{{$}} // RUN: not %clang_cc1 -triple i386--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix X86 // X86: error: unknown target CPU 'not-a-cpu' // X86-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, x86-64, x86-64-v2, x86-64-v3, x86-64-v4, geode{{$}} // RUN: not %clang_cc1 -triple x86_64--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix X86_64 // X86_64: error: unknown target CPU 'not-a-cpu' // X86_64-NEXT: note: valid target CPU values are: nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, knl, knm, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, x86-64, x86-64-v2, x86-64-v3, x86-64-v4{{$}} // RUN: not %clang_cc1 -triple i386--- -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE_X86 // TUNE_X86: error: unknown target CPU 'not-a-cpu' // TUNE_X86-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, x86-64, geode{{$}} // RUN: not %clang_cc1 -triple x86_64--- -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE_X86_64 // TUNE_X86_64: error: unknown target CPU 'not-a-cpu' // TUNE_X86_64-NEXT: note: valid target CPU values are: i386, i486, winchip-c6, winchip2, c3, i586, pentium, pentium-mmx, pentiumpro, i686, pentium2, pentium3, pentium3m, pentium-m, c3-2, yonah, pentium4, pentium4m, prescott, nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, rocketlake, icelake-server, tigerlake, sapphirerapids, alderlake, knl, knm, lakemont, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, x86-64, geode{{$}} // RUN: not %clang_cc1 -triple nvptx--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix NVPTX // NVPTX: error: unknown target CPU 'not-a-cpu' // NVPTX-NEXT: note: valid target CPU values are: sm_20, sm_21, sm_30, sm_32, sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86, gfx600, gfx601, gfx602, gfx700, gfx701, gfx702, gfx703, gfx704, gfx705, gfx801, gfx802, gfx803, gfx805, gfx810, gfx900, gfx902, gfx904, gfx906, gfx908, gfx909, gfx90a, gfx90c, gfx940, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx1100, gfx1101, gfx1102, gfx1103{{$}} // RUN: not %clang_cc1 -triple r600--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix R600 // R600: error: unknown target CPU 'not-a-cpu' // R600-NEXT: note: valid target CPU values are: r600, rv630, rv635, r630, rs780, rs880, rv610, rv620, rv670, rv710, rv730, rv740, rv770, cedar, palm, cypress, hemlock, juniper, redwood, sumo, sumo2, barts, caicos, aruba, cayman, turks{{$}} // RUN: not %clang_cc1 -triple amdgcn--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AMDGCN // AMDGCN: error: unknown target CPU 'not-a-cpu' // AMDGCN-NEXT: note: valid target CPU values are: gfx600, tahiti, gfx601, pitcairn, verde, gfx602, hainan, oland, gfx700, kaveri, gfx701, hawaii, gfx702, gfx703, kabini, mullins, gfx704, bonaire, gfx705, gfx801, carrizo, gfx802, iceland, tonga, gfx803, fiji, polaris10, polaris11, gfx805, tongapro, gfx810, stoney, gfx900, gfx902, gfx904, gfx906, gfx908, gfx909, gfx90a, gfx90c, gfx940, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx1100, gfx1101, gfx1102, gfx1103{{$}} // RUN: not %clang_cc1 -triple wasm64--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix WEBASM // WEBASM: error: unknown target CPU 'not-a-cpu' // WEBASM-NEXT: note: valid target CPU values are: mvp, bleeding-edge, generic{{$}} // RUN: not %clang_cc1 -triple systemz--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix SYSTEMZ // SYSTEMZ: error: unknown target CPU 'not-a-cpu' // SYSTEMZ-NEXT: note: valid target CPU values are: arch8, z10, arch9, z196, arch10, zEC12, arch11, z13, arch12, z14, arch13, z15, arch14, z16{{$}} // RUN: not %clang_cc1 -triple sparc--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix SPARC // SPARC: error: unknown target CPU 'not-a-cpu' // SPARC-NEXT: note: valid target CPU values are: v8, supersparc, sparclite, f934, hypersparc, sparclite86x, sparclet, tsc701, v9, ultrasparc, ultrasparc3, niagara, niagara2, niagara3, niagara4, ma2100, ma2150, ma2155, ma2450, ma2455, ma2x5x, ma2080, ma2085, ma2480, ma2485, ma2x8x, myriad2, myriad2.1, myriad2.2, myriad2.3, leon2, at697e, at697f, leon3, ut699, gr712rc, leon4, gr740{{$}} // RUN: not %clang_cc1 -triple sparcv9--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix SPARCV9 // SPARCV9: error: unknown target CPU 'not-a-cpu' // SPARCV9-NEXT: note: valid target CPU values are: v9, ultrasparc, ultrasparc3, niagara, niagara2, niagara3, niagara4{{$}} // RUN: not %clang_cc1 -triple powerpc--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix PPC // PPC: error: unknown target CPU 'not-a-cpu' // PPC-NEXT: note: valid target CPU values are: generic, 440, 450, 601, 602, 603, 603e, 603ev, 604, 604e, 620, 630, g3, 7400, g4, 7450, g4+, 750, 8548, 970, g5, a2, e500, e500mc, e5500, power3, pwr3, power4, pwr4, power5, pwr5, power5x, pwr5x, power6, pwr6, power6x, pwr6x, power7, pwr7, power8, pwr8, power9, pwr9, power10, pwr10, powerpc, ppc, ppc32, powerpc64, ppc64, powerpc64le, ppc64le, future{{$}} // RUN: not %clang_cc1 -triple mips--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix MIPS // MIPS: error: unknown target CPU 'not-a-cpu' // MIPS-NEXT: note: valid target CPU values are: mips1, mips2, mips3, mips4, mips5, mips32, mips32r2, mips32r3, mips32r5, mips32r6, mips64, mips64r2, mips64r3, mips64r5, mips64r6, octeon, octeon+, p5600{{$}} // RUN: not %clang_cc1 -triple lanai--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix LANAI // LANAI: error: unknown target CPU 'not-a-cpu' // LANAI-NEXT: note: valid target CPU values are: v11{{$}} // RUN: not %clang_cc1 -triple hexagon--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix HEXAGON // HEXAGON: error: unknown target CPU 'not-a-cpu' // HEXAGON-NEXT: note: valid target CPU values are: hexagonv5, hexagonv55, hexagonv60, hexagonv62, hexagonv65, hexagonv66, hexagonv67, hexagonv67t, hexagonv68, hexagonv69{{$}} // RUN: not %clang_cc1 -triple bpf--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix BPF // BPF: error: unknown target CPU 'not-a-cpu' // BPF-NEXT: note: valid target CPU values are: generic, v1, v2, v3, probe{{$}} // RUN: not %clang_cc1 -triple avr--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AVR // AVR: error: unknown target CPU 'not-a-cpu' // AVR-NEXT: note: valid target CPU values are: avr1, avr2, avr25, avr3, avr31, avr35, avr4, avr5, avr51, avr6, avrxmega1, avrxmega2, avrxmega3, avrxmega4, avrxmega5, avrxmega6, avrxmega7, avrtiny, at90s1200, attiny11, attiny12, attiny15, attiny28, at90s2313, at90s2323, at90s2333, at90s2343, attiny22, attiny26, at86rf401, at90s4414, at90s4433, at90s4434, at90s8515, at90c8534, at90s8535, ata5272, ata6616c, attiny13, attiny13a, attiny2313, attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny441, attiny461, attiny461a, attiny841, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88, attiny828, at43usb355, at76c711, atmega103, at43usb320, attiny167, at90usb82, at90usb162, ata5505, ata6617c, ata664251, atmega8u2, atmega16u2, atmega32u2, attiny1634, atmega8, ata6289, atmega8a, ata6285, ata6286, ata6612c, atmega48, atmega48a, atmega48pa, atmega48pb, atmega48p, atmega88, atmega88a, atmega88p, atmega88pa, atmega88pb, atmega8515, atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata5702m322, ata5782, ata5790, ata5790n, ata5791, ata5795, ata5831, ata6613c, ata6614q, ata8210, ata8510, atmega16, atmega16a, atmega161, atmega162, atmega163, atmega164a, atmega164p, atmega164pa, atmega165, atmega165a, atmega165p, atmega165pa, atmega168, atmega168a, atmega168p, atmega168pa, atmega168pb, atmega169, atmega169a, atmega169p, atmega169pa, atmega32, atmega32a, atmega323, atmega324a, atmega324p, atmega324pa, atmega324pb, atmega325, atmega325a, atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p, atmega3250pa, atmega328, atmega328p, atmega328pb, atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a, atmega3290p, atmega3290pa, atmega406, atmega64, atmega64a, atmega640, atmega644, atmega644a, atmega644p, atmega644pa, atmega645, atmega645a, atmega645p, atmega649, atmega649a, atmega649p, atmega6450, atmega6450a, atmega6450p, atmega6490, atmega6490a, atmega6490p, atmega64rfr2, atmega644rfr2, atmega16hva, atmega16hva2, atmega16hvb, atmega16hvbrevb, atmega32hvb, atmega32hvbrevb, atmega64hve, atmega64hve2, at90can32, at90can64, at90pwm161, at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at90scr100, at94k, m3000, atmega128, atmega128a, atmega1280, atmega1281, atmega1284, atmega1284p, atmega128rfa1, atmega128rfr2, atmega1284rfr2, at90can128, at90usb1286, at90usb1287, atmega2560, atmega2561, atmega256rfr2, atmega2564rfr2, atxmega16a4, atxmega16a4u, atxmega16c4, atxmega16d4, atxmega32a4, atxmega32a4u, atxmega32c3, atxmega32c4, atxmega32d3, atxmega32d4, atxmega32e5, atxmega16e5, atxmega8e5, atxmega64a3, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3, atxmega64c3, atxmega64d3, atxmega64d4, atxmega64a1, atxmega64a1u, atxmega128a3, atxmega128a3u, atxmega128b1, atxmega128b3, atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega192c3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3, atxmega128a1, atxmega128a1u, atxmega128a4u, attiny4, attiny5, attiny9, attiny10, attiny20, attiny40, attiny102, attiny104, attiny202, attiny402, attiny204, attiny404, attiny804, attiny1604, attiny406, attiny806, attiny1606, attiny807, attiny1607, attiny212, attiny412, attiny214, attiny414, attiny814, attiny1614, attiny416, attiny816, attiny1616, attiny3216, attiny417, attiny817, attiny1617, attiny3217, attiny1624, attiny1626, attiny1627, atmega808, atmega809, atmega1608, atmega1609, atmega3208, atmega3209, atmega4808, atmega4809 // RUN: not %clang_cc1 -triple riscv32 -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix RISCV32 // RISCV32: error: unknown target CPU 'not-a-cpu' // RISCV32-NEXT: note: valid target CPU values are: generic-rv32, rocket-rv32, sifive-7-rv32, sifive-e20, sifive-e21, sifive-e24, sifive-e31, sifive-e34, sifive-e76{{$}} // RUN: not %clang_cc1 -triple riscv64 -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix RISCV64 // RISCV64: error: unknown target CPU 'not-a-cpu' // RISCV64-NEXT: note: valid target CPU values are: generic-rv64, rocket-rv64, sifive-7-rv64, sifive-s21, sifive-s51, sifive-s54, sifive-s76, sifive-u54, sifive-u74{{$}} // RUN: not %clang_cc1 -triple riscv32 -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE-RISCV32 // TUNE-RISCV32: error: unknown target CPU 'not-a-cpu' // TUNE-RISCV32-NEXT: note: valid target CPU values are: generic-rv32, rocket-rv32, sifive-7-rv32, sifive-e20, sifive-e21, sifive-e24, sifive-e31, sifive-e34, sifive-e76, generic, rocket, sifive-7-series{{$}} // RUN: not %clang_cc1 -triple riscv64 -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE-RISCV64 // TUNE-RISCV64: error: unknown target CPU 'not-a-cpu' // TUNE-RISCV64-NEXT: note: valid target CPU values are: generic-rv64, rocket-rv64, sifive-7-rv64, sifive-s21, sifive-s51, sifive-s54, sifive-s76, sifive-u54, sifive-u74, generic, rocket, sifive-7-series{{$}} [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 11/11] gnu: clang-properties: Add micro-architecture support for powerpc64le. 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner ` (9 preceding siblings ...) 2024-03-06 11:06 ` [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures Efraim Flashner @ 2024-03-06 11:06 ` Efraim Flashner 2024-03-06 18:12 ` Ludovic Courtès [not found] ` <handler.69581.B.170972307319660.ack@debbugs.gnu.org> 11 siblings, 1 reply; 36+ messages in thread From: Efraim Flashner @ 2024-03-06 11:06 UTC (permalink / raw) To: 69581; +Cc: Efraim Flashner * gnu/packages/llvm.scm (clang-properties): Add entry for powerpc64le. Change-Id: I89f300922270a1f35aa08e73e62d90843bd902c8 --- gnu/packages/llvm.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 2567405cb4..c002f62cac 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -482,6 +482,11 @@ (define* (clang-from-llvm llvm clang-runtime (define (clang-properties version) "Return package properties for Clang VERSION." `((compiler-cpu-architectures + ("powerpc64le" + ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c + ;; and then trimmed down. + ,@(if (version>=? version "11.0") + '("power8" "power9" "power10" "powerpc64le"))) ("x86_64" ;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c ,@(cond -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [bug#69581] [PATCH 11/11] gnu: clang-properties: Add micro-architecture support for powerpc64le. 2024-03-06 11:06 ` [bug#69581] [PATCH 11/11] gnu: clang-properties: Add micro-architecture support for powerpc64le Efraim Flashner @ 2024-03-06 18:12 ` Ludovic Courtès 0 siblings, 0 replies; 36+ messages in thread From: Ludovic Courtès @ 2024-03-06 18:12 UTC (permalink / raw) To: Efraim Flashner; +Cc: 69581 Efraim Flashner <efraim@flashner.co.il> skribis: > * gnu/packages/llvm.scm (clang-properties): Add entry for powerpc64le. > > Change-Id: I89f300922270a1f35aa08e73e62d90843bd902c8 LGTM, thanks! ^ permalink raw reply [flat|nested] 36+ messages in thread
[parent not found: <handler.69581.B.170972307319660.ack@debbugs.gnu.org>]
* bug#69581: Acknowledgement ([PATCH 00/11] CPU tuning patches) [not found] ` <handler.69581.B.170972307319660.ack@debbugs.gnu.org> @ 2024-03-10 10:51 ` Efraim Flashner 0 siblings, 0 replies; 36+ messages in thread From: Efraim Flashner @ 2024-03-10 10:51 UTC (permalink / raw) To: 69581-done [-- Attachment #1: Type: text/plain, Size: 230 bytes --] Patches pushed! -- Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
end of thread, other threads:[~2024-03-10 10:53 UTC | newest] Thread overview: 36+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-03-06 11:03 [bug#69581] [PATCH 00/11] CPU tuning patches Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 01/11] gnu: opus: Mark as tunable Efraim Flashner 2024-03-06 17:49 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 02/11] gnu: libvorbis: " Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 03/11] guix: cpu: Be consistent with x86_64 micro-architecture names Efraim Flashner 2024-03-06 17:53 ` Ludovic Courtès 2024-03-07 9:11 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 04/11] guix: cpu: Rename x86-64-v1 to x86-64 Efraim Flashner 2024-03-06 17:59 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 05/11] guix: cpu: Enable tuning for i686-linux Efraim Flashner 2024-03-06 18:05 ` Ludovic Courtès 2024-03-07 9:09 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 06/11] gnu: syncthing: Mark as tunable Efraim Flashner 2024-03-06 18:06 ` Ludovic Courtès 2024-03-07 9:09 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 07/11] gnu: rust: Add tuning information Efraim Flashner 2024-03-06 18:09 ` Ludovic Courtès 2024-03-07 9:09 ` Efraim Flashner 2024-03-06 18:10 ` Ludovic Courtès 2024-03-07 9:10 ` Efraim Flashner 2024-03-07 21:38 ` Ludovic Courtès 2024-03-08 12:05 ` Efraim Flashner 2024-03-08 21:57 ` Ludovic Courtès 2024-03-10 8:26 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 08/11] transformations: Add support for rust Efraim Flashner 2024-03-06 18:11 ` Ludovic Courtès 2024-03-06 11:06 ` [bug#69581] [PATCH 09/11] gnu: rav1e: Mark as tunable Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 10/11] gnu: clang-properties: Update x86_64 micro-architectures Efraim Flashner 2024-03-06 18:12 ` Ludovic Courtès 2024-03-07 9:10 ` Efraim Flashner 2024-03-07 21:42 ` Ludovic Courtès 2024-03-08 12:07 ` Efraim Flashner 2024-03-07 9:12 ` Efraim Flashner 2024-03-06 11:06 ` [bug#69581] [PATCH 11/11] gnu: clang-properties: Add micro-architecture support for powerpc64le Efraim Flashner 2024-03-06 18:12 ` Ludovic Courtès [not found] ` <handler.69581.B.170972307319660.ack@debbugs.gnu.org> 2024-03-10 10:51 ` bug#69581: Acknowledgement ([PATCH 00/11] CPU tuning patches) Efraim Flashner
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git 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).