Subject: [bug#64188] [PATCH 0/8] More package tuning

From: Ludovic Courtès <[email-masked]>
Date: Sun, 25 Jun 2023 22:47:42 +0200

Hello Efraim,

Efraim Flashner <[email-masked]> skribis:

> with gcc-11, gcc gained support for using -march=x86_64-v{1,2,3,4},
> which I'm calling 'generic options,' as opposed to the more targeted
> tuning we have with specific architectures.

I don’t think these x86_64 psABI “architecture levels” should be treated
specially:

  • From the point of view of ‘--tune’, they’re just another value that
    may be passed to ‘-march’.

  • My understanding is that those levels don’t match reality: as
    discussed in the original ‘--tune’ patch¹, CPUs actually produced
    don’t follow a pattern of strictly including features of one set.
    They’re really just a simplification to get more memorizable names,
    but it’s hard to tell whether a given CPU really covers the set of
    features of a given level.

Overall, my take on this would be to add supported levels to
‘%gcc-11-x86_64-micro-architectures’ & co., without going further.

WDYT?

¹ https://issues.guix.gnu.org/52283#0-lineno48

[...]

> go cpu tuning targets: I mostly used the chart¹ on the go website, and I
> also checked the source code for go-1.18. I put in arm{5,6,7} as arm and
> not armhf since armhf only works with armv7 and with go programs, since
> they're statically linked, they can just be copied to other machines.

Now if Go uses those names, (guix cpu) can provide helpers.

Thanks,
Ludo’.