[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
05/07: guix: cpu: Add gcc-architecture->micro-architecture-level mapping
From: |
guix-commits |
Subject: |
05/07: guix: cpu: Add gcc-architecture->micro-architecture-level mapping. |
Date: |
Wed, 12 Jul 2023 09:51:28 -0400 (EDT) |
efraim pushed a commit to branch master
in repository guix.
commit 1701b1244d15dc6e8b7b1fe7af5fe26a82a465ba
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Tue Jun 20 10:41:24 2023 +0300
guix: cpu: Add gcc-architecture->micro-architecture-level mapping.
* guix/cpu.scm (gcc-architecture->micro-architecture-level): New
variable.
---
guix/cpu.scm | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/guix/cpu.scm b/guix/cpu.scm
index 30cd860a19..29ad883584 100644
--- a/guix/cpu.scm
+++ b/guix/cpu.scm
@@ -32,7 +32,8 @@
cpu-model
cpu-flags
- cpu->gcc-architecture))
+ cpu->gcc-architecture
+ gcc-architecture->micro-architecture-level))
;;; Commentary:
;;;
@@ -283,3 +284,24 @@ correspond roughly to CPU, a record as returned by
'current-cpu'."
(architecture
;; TODO: More architectures
architecture)))
+
+(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
+ ;; 'Haswell and higher' qualify 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 "grandridge" "graniterapids" "sierraforest" "tigerlake"
+ "sapphirerapids" "cooperlake" "icelake-server" "icelake-client"
+ "cannonlake" "knm" "knl" "skylake-avx512" "alderlake" "skylake"
+ "broadwell" "haswell"
+ "znver4" "znver3" "znver2" "znver1" "bdver4")
+ "x86_64-v3")
+ ((or "sandybridge" "tremont" "goldmont-plus" "goldmont" "silvermont"
+ "nehalem" "bonnell" "core2"
+ "btver2" "athalon" "k8-sse3" "k8" "bdver3" "bdver2" "bdver1" "btver1"
+ "amdfam10"
+ "lujiazui" "x86-64")
+ "x86_64-v1")
+ (_ gcc-architecture)))
- branch master updated (f2f27c4952 -> 691b97aed9), guix-commits, 2023/07/12
- 03/07: guix: cpu: Rewrite fallback for x86_64 cpu->gcc-architecture., guix-commits, 2023/07/12
- 02/07: guix: cpu: Add generalized CPU matching., guix-commits, 2023/07/12
- 07/07: transformations: Allow tuning go packages., guix-commits, 2023/07/12
- 05/07: guix: cpu: Add gcc-architecture->micro-architecture-level mapping.,
guix-commits <=
- 04/07: guix: cpu: Refactor cpu->gcc-architecture., guix-commits, 2023/07/12
- 06/07: gnu: go: Add CPU tuning targets., guix-commits, 2023/07/12
- 01/07: gnu: %gcc-11-x86_64-micro-architectures: Add psabi entries., guix-commits, 2023/07/12