[Bug 278063] Add znver4 to 14-STABLE examples

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 05 Apr 2024 01:43:21 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278063

Edward.Sanford.Sutton, III <mirror176@hotmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mirror176@hotmail.com

--- Comment #1 from Edward.Sanford.Sutton, III <mirror176@hotmail.com> ---
  Wish this would just document how to find the supported list unless it is
trying to leave out known bad choices (they could be listed as such). If this
is supposed to document a different list, it would be good if it explained why.
`clang --print-supported-cpus` gives a list on 14-stable though alphabetically
sorted and undescribed. `clang -mcpu=?` and `clang -mtune=?` fail to return the
same result contrary to what `man clang` says should happen. The meaning of
CPUTYPE should be more clearly described and any changes better used with it
specifically should be documented in that section.
  I presume CPUTYPE definitions should be provided in a conditional way so that
the next best supported choice can be chosen in case of ports calling different
compiler versions. If the document is an example, such an example would be good
to see.
  That inclusion is already visible in
https://cgit.freebsd.org/src/tree/share/examples/etc/make.conf and should
likely be backported.
  With `clang --print-supported-cpus` on 'Target: x86_64-unknown-freebsd14.0`,
there are more differences (alphabetically sorted, not sorted by brand, release
date or order of preference/features). make.conf's example changelog says it
was last updated to clang12. Differences between compilers in ports and
versions in each version's base should be checked if make.conf's examples for
CPUTYPE is intended to match the base compiler.
  As an interesting note, `clang -print-targets` says x86-64 is the target, but
`clang --target=x86-64-unknown-freebsd14.0 --print-supported-cpus` fails until
changed to 'x86_64'; this is true of -print-targets output from 11 to -devel.
Similarly, `clang --target=x86 --print-supported-cpus` has no supported targets
while '--target=x86_64' does. If there is no compatible targets, the output
does not end itself with a newline; shell prompt is placed at the end of the
output. Are these bugs that upstream should know of, are they FreeBSD specific,
or did I misunderstand their use and output?

llvm versions used to follow --print-supported-cpus differences:
llvm10-10.0.1_12
llvm11-11.0.1_9 (no change)
llvm12-12.0.1_13
llvm13-13.0.1_7 (no change)
llvm14-14.0.6_5
llvm15-15.0.7_10 (no change)
llvm16-16.0.6_10
llvm17-17.0.6_5 (matches 14-stable base version output)
llvm18-18.1.2
llvm-devel-19.0.d20240212_1 (no change)

Differences for consideration (clang version suggesting change, '-#' means
version that removed it)...
x86_64:
+ atom (12)
+ atom_sse4_2 (17)
+ atom_sse4_2_movbe (17)
+ arrowlake (18)
+ arrowlake-s (18)
+ arrowlake_s (18)
+ barcelona (12)
- c7 (-12)
+ clearwaterforest (18)
- core (-12)
+ core-avx-1 (12)
+ core-avx2 (12)
+ core_2_duo_sse4_1 (17)
+ core_2_duo_ssse3 (17)
+ core_2nd_gen_avx (17)
+ core_3rd_gen_avx (17)
+ core_4th_gen_avx (17)
+ core_4th_gen_avx_tsx (17)
+ core_5th_gen_avx (17)
+ core_5th_gen_avx_tsx (17)
+ core_aes_pclmulqdq (17)
+ core_i7_sse4_2 (17)
+ corei7 (12)
+ corei7-avx (12)
+ emeraldrapids (16)
+ generic (12)
+ goldmont_plus (17)
+ gracemont (18)
+ grandridge (16)
+ graniterapids (16)
+ graniterapids-d (17)
+ graniterapids_d (17)
+ i386 (12)
+ i586 (12)
+ i686 (12)
+ icelake_client (17)
+ icelake_server (17)
- k7 (-12)
+ lakemont (12)
+ lunarlake (18)
+ meteorlake (16)
+ mic_avx512 (17)
+ pantherlake (18)
+ penryn (12)
+ pentium_4 (17)
+ pentium_4_sse3 (17)
+ pentium_ii (17)
+ pentium_iii (17)
+ pentium_iii_no_xmm_regs (17)
+ pentium_m (17)
+ pentium_mmx (17)
+ pentium_pro (17)
+ raptorlake (16)
+ rocketlake (14)
+ sierraforest (16)
+ skx (12)
+ skylake_avx512 (17)
+ slm (12)
+ winchip-c6 (12)
+ winchip2 (12)
+ x86-64 (<=10)
+ x86-64-v2 (12)
+ x86-64-v3 (12)
+ x86-64-v4 (12)
+ yonah (12)
+ znver4 (16)

arm(11), armeb(11), thumb(11), thumbeb(11) (only some shared with arm64 line):
+ arm1020e (11)
+ arm1020t (11)
+ arm1022e (11)
+ arm10e (11)
+ arm10tdmi (11)
+ arm1136j-s (11)
+ arm1136jf-s (11)
+ arm1156t2-s (11)
+ arm1156t2f-s (11)
+/- arm1176j-s (11,-13)
+ arm1176jz-s (11)
+ arm710t (11)
+ arm720t (11)
+ arm7tdmi (11)
+ arm7tdmi-s (11)
+ arm8 (11)
+ arm810 (11)
+ arm9 (11)
+ arm920 (11)
+ arm920t (11)
+ arm922t (11)
+ arm926ej-s (11)
+ arm940t (11)
+ arm946e-s (11)
+ arm966e-s (11)
+ arm968e-s (11)
+ arm9e (11)
+ arm9tdmi (11)
- armv5 (?)
- armv5te (?)
- armv6 (?)
- armv6t2 (?)
- armv7 (?)
- armv7-a (?)
- armv7ve (?)
+ cortex-a32 (11)
+ cortex-a35 (11)
+ cortex-a53 (11)
+ cortex-a55 (11)
+ cortex-a57 (11)
+ cortex-a710 (14)
+ cortex-a72 (11)
+ cortex-a73 (11)
+ cortex-a75 (11)
+ cortex-a76 (11)
+ cortex-a76ae (11)
+ cortex-a77 (11)
+ cortex-a78 (11)
+ cortex-a78c (12)
+ cortex-m0 (11)
+ cortex-m0plus (11)
+ cortex-m1 (11)
+ cortex-m23 (11)
+ cortex-m3 (11)
+ cortex-m33 (11)
+ cortex-m35p (11)
+ cortex-m4 (11)
+ cortex-m52 (18)
+ cortex-m55 (11)
+ cortex-m85 (15)
+ cortex-m7 (11)
+ cortex-m85 (15)
+ cortex-r4 (11)
+ cortex-r4f (11)
+ cortex-r5 (11)
+ cortex-r52 (11)
+ cortex-r7 (11)
+ cortex-r8 (11)
+ cortex-x1 (11)
+ cortex-x1c (14)
+ cyclone (11)
+ ep9312 (11)
+ exynos-m3 (11)
+ exynos-m4 (11)
+ exynos-m5 (11)
+ generic (11)
- generic-armv7-a (?)
+ iwmmxt (11)
+ krait (11)
+ kryo (11)
+ mpcore (11)
+ mpcorenovfp (11)
+ neoverse-n1 (11)
+ neoverse-n2 (12)
+ neoverse-v1 (12)
+ sc000 (11)
+ sc300 (11)
+ strongarm (11)
+ strongarm110 (11)
+ strongarm1100 (11)
+ strongarm1110 (11)
+ swift (11)

aarch64(11), aarch64_32(11), aarch64_be(11), arm64(11), arm64_32(11):
+ a64fx (11)
+ ampere1 (14)
+ ampere1a (16)
+ ampere1b(18)
+ apple-a10 (11)
+ apple-a11 (11)
+ apple-a12 (11)
+ apple-a13 (11)
+ apple-a14 (12)
+ apple-a15 (16)
+ apple-a16 (16)
+ apple-a17 (18)
+ apple-a7 (11)
+ apple-a8 (11)
+ apple-a9 (11)
+ apple-latest (11)
+ apple-m1 (13)
+ apple-m2 (16)
+ apple-m3 (18)
+ apple-s4 (11)
+ apple-s5 (11)
+ carmel (11)
+ cortex-a34 (11)
+ cortex-a35 (11)
+ cortex-a510 (14)
+ cortex-a520 (18)
+ cortex-a720 (18)
+ cortex-a55 (11)
+ cortex-a65 (11)
+ cortex-a65ae (11)
+ cortex-a710 (14)
+ cortex-a715 (16)
+ cortex-a73 (11)
+ cortex-a75 (11)
+ cortex-a76 (11)
+ cortex-a76ae (11)
+ cortex-a77 (11)
+ cortex-a78 (11)
+ cortex-a78c (12)
+ cortex-r82 (12)
+ cortex-x1 (11)
+ cortex-x1c (14)
+ cortex-x2 (14)
+ cortex-x3 (16)
+ cortex-x4 (18)
+ cyclone (11)
- exynos-m1 (?)
+ exynos-m3 (11)
+ exynos-m4 (11)
+ exynos-m5 (11)
+ falkor (11)
+ generic (11)
+ kryo (11)
+ neoverse-512tvb (14)
+ neoverse-e1 (11)
+ neoverse-n1 (11)
+ neoverse-n2 (12)
+ neoverse-v1 (12)
+ neoverse-v2 (16)
+ saphira (11)
+ thunderx (11)
+ thunderx2t99 (11)
+ thunderx3t110 (11)
+ thunderxt81 (11)
+ thunderxt83 (11)
+ thunderxt88 (11)
+ tsv110 (11)

remaining architectures are listed by 14's base llvm but not in the make.conf
examples at all.

ppc64(11), ppc32(11), ppc64le(11), ppc32le(12):
+ 440 (11)
+ 450 (11)
+ 601 (11)
+ 602 (11)
+ 603 (11)
+ 603e (11)
+ 603ev (11)
+ 604 (11)
+ 604e (11)
+ 620 (11)
+ 7400 (11)
+ 7450 (11)
+ 750 (11)
+ 970 (11)
+ a2 (11)
+/- a2q (11,-12)
+ e500 (11)
+ e500mc (11)
+ e5500 (11)
+ future (11)
+ g3 (11)
+ g4 (11)
+ g4+ (11)
+ g5 (11)
+ generic (11)
+ ppc (11)
+ ppc32 (11)
+ ppc64 (11)
+ ppc64le (11)
+ pwr10 (11)
+ pwr3 (11)
+ pwr4 (11)
+ pwr5 (11)
+ pwr5x (11)
+ pwr6 (11)
+ pwr6x (11)
+ pwr7 (11)
+ pwr8 (11)
+ pwr9 (11)

riscv64(11), riscv32(11):
+ generic (15)
+ generic-rv32 (11)
+ generic-rv64 (11)
+ rocket (16)
+ rocket-rv32 (11)
+ rocket-rv64 (11)
+ sifive-7-series (16)
- sifive-7-rv32 (-16)
- sifive-7-rv64 (-16)
+ sifive-e20 (14)
+ sifive-e21 (14)
+ sifive-e24 (14)
+ sifive-e31 (11)
+ sifive-e34 (14)
+ sifive-e76 (12)
+ sifive-s21 (14)
+ sifive-s51 (14)
+ sifive-s54 (14)
+ sifive-s76 (14)
+ sifive-u54 (11)
+ sifive-u74 (12)
+ sifive-p450 (18)
+ sifive-p670 (18)
+ sifive-x280 (17)
+ syntacore-scr1-base (16)
+ syntacore-scr1-max (16)
+ veyron-v1 (18)
+ xiangshan-nanhu (18)

I threw together a (not so great) script to compare target and cpu differences
as listed by llvm outputs to take these notes which I can provide if it is
helpful.

-- 
You are receiving this mail because:
You are on the CC list for the bug.