Do we have that fix in llvm for the upcoming release of 14.1? https://github.com/llvm/llvm-project/issues/90985 https://www.phoronix.com/news/LLVM-Slower-With-AMD-Opts
We're already at 14.1-BETA2, and since this does not appear to be a regression, I would guess it is too late to get in.
(In reply to Dimitry Andric from comment #1) Thanks for the reply, i will then close the ticket, Have a nice Day
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=cadd2ca21765ebcb95b77ec94977b4e74e1edc1b commit cadd2ca21765ebcb95b77ec94977b4e74e1edc1b Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-05-25 17:52:15 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-05-25 19:12:29 +0000 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 contrib/llvm-project/llvm/lib/Target/X86/X86.td | 6 ++++++ 1 file changed, 6 insertions(+)
Reopening to track MFCs.
A commit in branch stable/14 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=ec38746722a15b4376bed274e96ff7b8c31804e1 commit ec38746722a15b4376bed274e96ff7b8c31804e1 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-05-25 17:52:15 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-05-28 05:25:49 +0000 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 (cherry picked from commit cadd2ca21765ebcb95b77ec94977b4e74e1edc1b) contrib/llvm-project/llvm/lib/Target/X86/X86.td | 6 ++++++ 1 file changed, 6 insertions(+)
A commit in branch stable/13 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=a3e6eda7981319113d39caedf79b94b44773970f commit a3e6eda7981319113d39caedf79b94b44773970f Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-05-25 17:52:15 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-05-28 05:26:46 +0000 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 (cherry picked from commit cadd2ca21765ebcb95b77ec94977b4e74e1edc1b) contrib/llvm-project/llvm/lib/Target/X86/X86.td | 6 ++++++ 1 file changed, 6 insertions(+)
A commit in branch main references this bug: 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 +- .../patch-clang_lib_Headers_CMakeLists.txt (gone) | 37 ---------- .../llvm18/files/patch-freebsd-cadd2ca21765 (new) | 83 ++++++++++++++++++++++ devel/llvm18/pkg-plist | 25 +++++++ 4 files changed, 109 insertions(+), 38 deletions(-)
The fixes have been MFC'd now, but we're waiting on re@ to approve merging them to releng/14.1, to make sure it ends up in 14.1-RELEASE. Keeping this bug open until that is done.
Can we close the ticket?
(In reply to nix23 from comment #9) It wasn't merged to releng/14.1 before the release, since they didn't want to hold up the release any longer. If you are happy to wait for 14.2, we can close this bug.
(In reply to Dimitry Andric from comment #10) Yes i think it make no sense to leave it open, thanks for put a eye on it. Have a great Day!