Skip site navigation (1)Skip section navigation (2)


| raw e-mail | index | archive | help
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c56fde6514ee21ccb186267c304ad444463f661c

commit c56fde6514ee21ccb186267c304ad444463f661c
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2024-05-28 11:47:37 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2024-05-28 11:56:43 +0000

    devel/llvm18: misc improvements
    
    Fix worse runtime performance on Zen CPU when optimizing for Zen. [0]
    
    Install all standard heaaders with clang.  Historically we've been
    unable to build FreeBSD with the full set due to conflicts and/or
    missing features between the compiler provided headers and
    FreeBSD's headers.  I've verified that I can build world and kernel on
    the main, stable/14, and stable/13 branches for amd64 so let's give it
    another try in broader testing. [1]
    
    PR:             278908 [0], 274542 [1]
---
 devel/llvm18/Makefile                              |  2 +-
 .../files/patch-clang_lib_Headers_CMakeLists.txt   | 37 ----------
 devel/llvm18/files/patch-freebsd-cadd2ca21765      | 83 ++++++++++++++++++++++
 devel/llvm18/pkg-plist                             | 25 +++++++
 4 files changed, 109 insertions(+), 38 deletions(-)

diff --git a/devel/llvm18/Makefile b/devel/llvm18/Makefile
index 94d84bfc973c..389bdf7d85a0 100644
--- a/devel/llvm18/Makefile
+++ b/devel/llvm18/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	llvm
 DISTVERSION=	18.1.6
-PORTREVISION=	0
+PORTREVISION=	1
 CATEGORIES=	devel lang
 MASTER_SITES=	https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \
 		https://${PRE_}releases.llvm.org/${LLVM_RELEASE}${RCDIR}/
diff --git a/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt b/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt
deleted file mode 100644
index 4a5d995dfb27..000000000000
--- a/devel/llvm18/files/patch-clang_lib_Headers_CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
---- clang/lib/Headers/CMakeLists.txt.orig
-+++ clang/lib/Headers/CMakeLists.txt
-@@ -6,34 +6,9 @@
-   float.h
-   inttypes.h
-   iso646.h
--  limits.h
-   module.modulemap
--  stdalign.h
--  stdarg.h
--  __stdarg___gnuc_va_list.h
--  __stdarg___va_copy.h
--  __stdarg_va_arg.h
--  __stdarg_va_copy.h
--  __stdarg_va_list.h
--  stdatomic.h
--  stdbool.h
--  stdckdint.h
--  stddef.h
--  __stddef_max_align_t.h
--  __stddef_null.h
--  __stddef_nullptr_t.h
--  __stddef_offsetof.h
--  __stddef_ptrdiff_t.h
--  __stddef_rsize_t.h
--  __stddef_size_t.h
--  __stddef_unreachable.h
--  __stddef_wchar_t.h
--  __stddef_wint_t.h
--  stdint.h
--  stdnoreturn.h
-   tgmath.h
-   unwind.h
--  varargs.h
-   )
- 
- set(arm_common_files
diff --git a/devel/llvm18/files/patch-freebsd-cadd2ca21765 b/devel/llvm18/files/patch-freebsd-cadd2ca21765
new file mode 100644
index 000000000000..7e70e212a118
--- /dev/null
+++ b/devel/llvm18/files/patch-freebsd-cadd2ca21765
@@ -0,0 +1,83 @@
+commit cadd2ca21765ebcb95b77ec94977b4e74e1edc1b
+Author: Dimitry Andric <dim@FreeBSD.org>
+Date:   Sat May 25 19:52:15 2024 +0200
+
+    Merge commit d0be944aa511 from llvm-project (by Simon Pilgrim):
+    
+      [X86] Add slow div64 tuning flag to Nehalem target (#91129)
+    
+      This appears to have been missed because later cpus don't inherit from Nehalem tuning much.
+    
+      Noticed while cleaning up for #90985
+    
+    Merge commit 8b400de79eff from llvm-project (by Simon Pilgrim):
+    
+      [X86] Enable TuningSlowDivide64 on Barcelona/Bobcat/Bulldozer/Ryzen Families (#91277)
+    
+      Despite most AMD cpus having a lower latency for i64 divisions that converge early, we are still better off testing for values representable as i32 and performing a i32 division if possible.
+    
+      All AMD cpus appear to have been missed when we added the "idivq-to-divl" attribute - this patch now matches Intel cpu behaviour (and the x86-64/v2/3/4 levels).
+    
+      Unfortunately the difference in code scheduling means I've had to stop using the update_llc_test_checks script and just use old-fashioned CHECK-DAG checks for divl/divq pairs.
+    
+      Fixes #90985
+    
+    This fixes possibly worse runtime performance on AMD Zen hardware, when
+    using -march=znver4 (or any other znver), as opposed to -march=x86-64-v4
+    or the baseline -march=x86-64. A similar fix is applied for Nehalem.
+    
+    PR:             278908
+    MFC after:      3 days
+
+diff --git llvm/lib/Target/X86/X86.td llvm/lib/Target/X86/X86.td
+index e89ddcc570c9..1aff5f9fad97 100644
+--- llvm/lib/Target/X86/X86.td
++++ llvm/lib/Target/X86/X86.td
+@@ -867,6 +867,7 @@ def ProcessorFeatures {
+   // Nehalem
+   list<SubtargetFeature> NHMFeatures = X86_64V2Features;
+   list<SubtargetFeature> NHMTuning = [TuningMacroFusion,
++                                      TuningSlowDivide64,
+                                       TuningInsertVZEROUPPER,
+                                       TuningNoDomainDelayMov];
+ 
+@@ -1336,6 +1337,7 @@ def ProcessorFeatures {
+                                               FeatureCMOV,
+                                               FeatureX86_64];
+   list<SubtargetFeature> BarcelonaTuning = [TuningFastScalarShiftMasks,
++                                            TuningSlowDivide64,
+                                             TuningSlowSHLD,
+                                             TuningSBBDepBreaking,
+                                             TuningInsertVZEROUPPER];
+@@ -1358,6 +1360,7 @@ def ProcessorFeatures {
+   list<SubtargetFeature> BtVer1Tuning = [TuningFast15ByteNOP,
+                                          TuningFastScalarShiftMasks,
+                                          TuningFastVectorShiftMasks,
++                                         TuningSlowDivide64,
+                                          TuningSlowSHLD,
+                                          TuningSBBDepBreaking,
+                                          TuningInsertVZEROUPPER];
+@@ -1380,6 +1383,7 @@ def ProcessorFeatures {
+                                          TuningFastVectorShiftMasks,
+                                          TuningFastMOVBE,
+                                          TuningSBBDepBreaking,
++                                         TuningSlowDivide64,
+                                          TuningSlowSHLD];
+   list<SubtargetFeature> BtVer2Features =
+     !listconcat(BtVer1Features, BtVer2AdditionalFeatures);
+@@ -1404,6 +1408,7 @@ def ProcessorFeatures {
+                                            FeatureLWP,
+                                            FeatureLAHFSAHF64];
+   list<SubtargetFeature> BdVer1Tuning = [TuningSlowSHLD,
++                                         TuningSlowDivide64,
+                                          TuningFast11ByteNOP,
+                                          TuningFastScalarShiftMasks,
+                                          TuningBranchFusion,
+@@ -1483,6 +1488,7 @@ def ProcessorFeatures {
+                                      TuningFastScalarShiftMasks,
+                                      TuningFastVariablePerLaneShuffle,
+                                      TuningFastMOVBE,
++                                     TuningSlowDivide64,
+                                      TuningSlowSHLD,
+                                      TuningSBBDepBreaking,
+                                      TuningInsertVZEROUPPER,
diff --git a/devel/llvm18/pkg-plist b/devel/llvm18/pkg-plist
index 106d46fe6187..3755e5776425 100644
--- a/devel/llvm18/pkg-plist
+++ b/devel/llvm18/pkg-plist
@@ -5917,6 +5917,21 @@ llvm%%LLVM_SUFFIX%%/include/llvm/XRay/YAMLXRayRecord.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__clang_hip_math.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__clang_hip_runtime_wrapper.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__clang_hip_stdlib.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stdarg___gnuc_va_list.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stdarg___va_copy.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stdarg_va_arg.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stdarg_va_copy.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stdarg_va_list.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_max_align_t.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_null.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_nullptr_t.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_offsetof.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_ptrdiff_t.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_rsize_t.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_size_t.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_unreachable.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_wchar_t.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__stddef_wint_t.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__wmmintrin_aes.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/__wmmintrin_pclmul.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/adcintrin.h
@@ -6010,6 +6025,7 @@ llvm%%LLVM_SUFFIX%%/include/llvm/XRay/YAMLXRayRecord.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/keylockerintrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/larchintrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/lasxintrin.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/limits.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/llvm_libc_wrappers/assert.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/llvm_libc_wrappers/ctype.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/llvm_libc_wrappers/inttypes.h
@@ -6096,6 +6112,14 @@ llvm%%LLVM_SUFFIX%%/include/llvm/XRay/YAMLXRayRecord.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/sm3intrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/sm4intrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/smmintrin.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdalign.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdarg.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdatomic.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdbool.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdckdint.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stddef.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdint.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/stdnoreturn.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/tbmintrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/tgmath.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/tmmintrin.h
@@ -6105,6 +6129,7 @@ llvm%%LLVM_SUFFIX%%/include/llvm/XRay/YAMLXRayRecord.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/usermsrintrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/vadefs.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/vaesintrin.h
+%%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/varargs.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/vecintrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/velintrin.h
 %%CLANG%%llvm%%LLVM_SUFFIX%%/lib/clang/%%LLVM_MAJOR%%/include/velintrin_approx.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?>