Commit graph

85 commits

Author SHA1 Message Date
Dimitry Andric
dc3f24ea8a Merge llvm-project release/19.x llvmorg-19.1.7-0-gcd708029e0b2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.7-0-gcd708029e0b2,
a.k.a. 19.1.7 release.

PR:		280562
MFC after:	3 days

(cherry picked from commit 6c05f3a74f)
2025-01-19 12:05:53 +01:00
Dimitry Andric
4db4ed3680 Merge llvm-project release/19.x llvmorg-19.1.5-0-gab4b5a2db582
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.5-0-gab4b5a2db582,
a.k.a. 19.1.5 release.

PR:		280562
MFC after:	3 days

(cherry picked from commit 71ac745d76)
2024-12-11 09:16:53 +01:00
Dimitry Andric
f7fa6bf9e7 Merge llvm-project release/19.x llvmorg-19.1.4-0-gaadaa00de76e
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.4-0-gaadaa00de76e,
a.k.a. 19.1.4 release.

PR:		280562
MFC after:	1 month

(cherry picked from commit 415efcecd8)
2024-12-01 12:17:17 +01:00
Dimitry Andric
24f861874c Apply workaround for building llvm-project with WITHOUT_LLVM_ASSERTIONS
Some internal checking functions should only be declared when both
NDEBUG and LLVM_ENABLE_ABI_BREAKING_CHECKS are undefined, otherwise you
would get compile errors similar to:

  /usr/src/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:921:13: error: no member named 'VerifyDAGDivergence' in 'llvm::SelectionDAG'
   921 |     CurDAG->VerifyDAGDivergence();
       |     ~~~~~~  ^

Adjust the conditions for declaring and using these functions. This has
also been reported upstream.

Reported by:	cy
PR:		280562
MFC after:	1 month

(cherry picked from commit a5b1eecbed)
2024-12-01 12:17:16 +01:00
Dimitry Andric
f61db8646f Merge llvm-project release/19.x llvmorg-19.1.2-0-g7ba7d8e2f7b6
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.2-0-g7ba7d8e2f7b6,
a.k.a. 19.1.2 release.

PR:		280562
MFC after:	1 month

(cherry picked from commit 5deeebd8c6)
2024-12-01 12:17:15 +01:00
Dimitry Andric
4d2780d6b0 Merge llvm-project release/19.x llvmorg-19.1.1-0-gd401987fe349
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.1-0-gd401987fe349,
a.k.a. 19.1.1 release.

PR:		280562
MFC after:	1 month

(cherry picked from commit 6e516c87b6)
2024-12-01 12:17:15 +01:00
Dimitry Andric
340cad008e Merge llvm-project release/19.x llvmorg-19.1.0-0-ga4bf6cd7cfb1
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.0-0-ga4bf6cd7cfb1,
a.k.a. 19.1.0 release.

PR:		280562
MFC after:	1 month

(cherry picked from commit c80e69b00d)
2024-12-01 12:17:14 +01:00
Dimitry Andric
67b657ee90 Merge llvm-project release/19.x llvmorg-19.1.0-rc4-0-g0c641568515a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.0-rc4-0-g0c641568515a.

PR:		280562
MFC after:	1 month

(cherry picked from commit 6c4b055cfb)
2024-12-01 12:17:14 +01:00
Dimitry Andric
33d8457b61 Merge llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.0-rc3-0-g437434df21d8.

PR:		280562
MFC after:	1 month

(cherry picked from commit 6298728806)
2024-12-01 12:17:13 +01:00
Dimitry Andric
bbe070a078 Merge llvm-project release/19.x llvmorg-19.1.0-rc2-0-gd033ae172d1c
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.0-rc2-0-gd033ae172d1c.

PR:		280562
MFC after:	1 month

(cherry picked from commit 52418fc2be)
2024-12-01 12:17:12 +01:00
Dimitry Andric
d544fe589b Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2.

PR:		280562
MFC after:	1 month

(cherry picked from commit 36b606ae6a)
2024-12-01 12:17:07 +01:00
Dimitry Andric
0eb20fbda7 Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-19-init-18630-gf2ccf80136a0, the
last commit before the upstream release/19.x branch was created.

PR:		280562
MFC after:	1 month

(cherry picked from commit 0fca6ea1d4)
2024-12-01 12:16:52 +01:00
Dimitry Andric
96ff33484e Merge commit c80c09f3e380 from llvm-project (by Dimitry Andric):
[CalcSpillWeights] Avoid x87 excess precision influencing weight result

  Fixes #99396

  The result of `VirtRegAuxInfo::weightCalcHelper` can be influenced by
  x87 excess precision, which can result in slightly different register
  choices when the compiler is hosted on x86_64 or i386. This leads to
  different object file output when cross-compiling to i386, or native.

  Similar to 7af3432e22b0, we need to add a `volatile` qualifier to the
  local `Weight` variable to force it onto the stack, and avoid the excess
  precision. Define `stack_float_t` in `MathExtras.h` for this purpose,
  and use it.

This is the version of the fix for PR276961 that landed upstream.

PR:		276961
Reported by:	cperciva
MFC after:	3 days

(cherry picked from commit 1a4b8325f6)
2024-07-31 09:29:47 +02:00
Dimitry Andric
5115838663 Revert "Fix llvm register allocator for native/cross build differences"
In preparation for applying the fix that landed upstream, this reverts
commit 397c2693fa:

  Fix llvm register allocator for native/cross build differences

  Work around an issue in LLVM's register allocator, which can cause
  slightly different i386 object files, when produced by a native or cross
  build of clang.

  This adds another volatile qualifier to a float variable declaration in
  the weightCalcHelper() function, which otherwise produces slightly
  different float results on amd64 and i386 hosts. In turn, this can lead
  to different (but equivalent) register choices, and thus non-identical
  assembly code.

  See https://github.com/llvm/llvm-project/issues/99396 for more details.

  Note this is a temporary fix, meant to merge in time for 13.4. As soon
  as upstream has a permanent solution we will import that.

PR:		276961
Reported by:	cperciva
MFC after:	3 days

(cherry picked from commit 52552d7572)
2024-07-31 09:29:41 +02:00
Dimitry Andric
2c75d99378 Fix llvm register allocator for native/cross build differences
Work around an issue in LLVM's register allocator, which can cause
slightly different i386 object files, when produced by a native or cross
build of clang.

This adds another volatile qualifier to a float variable declaration in
the weightCalcHelper() function, which otherwise produces slightly
different float results on amd64 and i386 hosts. In turn, this can lead
to different (but equivalent) register choices, and thus non-identical
assembly code.

See https://github.com/llvm/llvm-project/issues/99396 for more details.

Note this is a temporary fix, meant to merge in time for 13.4. As soon
as upstream has a permanent solution we will import that.

PR:		276961
Reported by:	cperciva
MFC after:	3 days

(cherry picked from commit 397c2693fa)
2024-07-24 21:25:53 +02:00
Dimitry Andric
f1e3279983 Merge llvm-project release/18.x llvmorg-18.1.6-0-g1118c2e05e67
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.6-0-g1118c2e05e67.

PR:		276104
MFC after:	3 days

(cherry picked from commit 3a0793336e)
2024-05-28 07:25:48 +02:00
Dimitry Andric
fe72d8ecb9 Merge llvm-project release/18.x llvmorg-18.1.5-0-g617a15a9eac9
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.5-0-g617a15a9eac9.

PR:		276104
MFC after:	3 days

(cherry picked from commit 5678d1d98a)
2024-05-07 19:03:16 +02:00
Dimitry Andric
854034a32c Merge llvm-project release/18.x llvmorg-18.1.4-0-ge6c3289804a6
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.4-0-ge6c3289804a6.

PR:		276104
MFC after:	3 days

(cherry picked from commit dfa39133b3)
2024-04-23 19:33:06 +02:00
Dimitry Andric
4b8be30b44 Merge llvm-project release/18.x llvmorg-18.1.0-rc2-53-gc7b0a6ecd442
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.0-rc2-53-gc7b0a6ecd442.

PR:		276104
MFC after:	1 month

(cherry picked from commit 74626c16ff)
2024-04-19 23:14:16 +02:00
Dimitry Andric
b9d9368bac Merge llvm-project release/18.x llvmorg-18.1.0-rc2-0-gc6c86965d967
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project release/18.x llvmorg-18.1.0-rc2-0-gc6c86965d967.

PR:		276104
MFC after:	1 month

(cherry picked from commit b3edf44679)
2024-04-19 23:14:15 +02:00
Dimitry Andric
a58f00ea91 Merge llvm-project main llvmorg-18-init-18359-g93248729cfae
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-18-init-18359-g93248729cfae, the
last commit before the upstream release/18.x branch was created.

PR:		276104
MFC after:	1 month

(cherry picked from commit 7a6dacaca1)
2024-04-19 23:14:13 +02:00
Dimitry Andric
6c20abcd56 Merge llvm-project main llvmorg-18-init-16864-g3b3ee1f53424
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-18-init-16864-g3b3ee1f53424.

PR:		276104
MFC after:	1 month

(cherry picked from commit 297eecfb02)
2024-04-19 23:14:12 +02:00
Dimitry Andric
cdc20ff6a7 Merge llvm-project main llvmorg-18-init-16595-g7c00a5be5cde
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-18-init-16595-g7c00a5be5cde.

PR:		276104
MFC after:	1 month

(cherry picked from commit 1db9f3b21e)
2024-04-19 23:14:10 +02:00
Dimitry Andric
de8261c4ac Merge llvm-project main llvmorg-18-init-16003-gfc5f51cf5af4
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-18-init-16003-gfc5f51cf5af4.

PR:		276104
MFC after:	1 month

(cherry picked from commit 647cbc5de8)
2024-04-19 23:13:53 +02:00
Dimitry Andric
7e83d42fa4 Revert commit 0e46b49de433 from llvm-project (by Matt Arsenault):
Reapply "RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG"

  This reverts commit c398fa009a47eb24f88383d5e911e59e70f8db86.

  PPC backend was fixed in 2f82662ce901c6666fceb9c6c5e0de216a1c9667

Since it causes an assertion failure building /sys/dev/fb/vga.c:
https://github.com/llvm/llvm-project/issues/76416

PR:		276104
MFC after:	1 month

(cherry picked from commit edc2dc17b1)
2024-04-19 23:12:23 +02:00
Dimitry Andric
e710425beb Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-18-init-15692-g007ed0dccd6a.

PR:		276104
MFC after:	1 month

(cherry picked from commit cb14a3fe51)
2024-04-19 23:12:22 +02:00
Dimitry Andric
c9157d925c Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fb
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-18-init-15088-gd14ee76181fb.

PR:		276104
MFC after:	1 month

(cherry picked from commit 5f757f3ff9)
2024-04-19 23:12:03 +02:00
Dimitry Andric
fc31d474c4 Merge commit f800c1f3b207 from llvm-project (by Arthur Eubanks):
[PEI] Don't zero out noreg operands

  A tail call may have $noreg operands.

  Fixes a crash.

  Reviewed By: xgupta

  Differential Revision: https://reviews.llvm.org/D156485

This should fix an assertion failure building qemu, specifically those
parts using -fzero-call-used-regs.

Reported by:	Daniel Berrangé <dan-freebsd@berrange.com>
PR:		277474
MFC after:	3 days

(cherry picked from commit a39b3aa463)
2024-03-08 09:15:49 +01:00
Dimitry Andric
be6857fe74 Merge llvm-project release/17.x llvmorg-17.0.5-0-g98bfdac5ce82
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-17.0.5-0-g98bfdac5ce82.

PR:		273753
MFC after:	1 month

(cherry picked from commit b121cb0095)
2024-01-07 18:46:18 +01:00
Dimitry Andric
4f2bdef80e Merge llvm-project release/17.x llvmorg-17.0.2-0-gb2417f51dbbd
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-17.0.2-0-gb2417f51dbbd.

PR:		273753
MFC after:	1 month

(cherry picked from commit 3bd749dbd9)
2024-01-07 18:46:18 +01:00
Dimitry Andric
7126fb41c7 Merge llvm-project release/17.x llvmorg-17.0.1-25-g098e653a5bed
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-17.0.1-25-g098e653a5bed.

PR:		273753
MFC after:	1 month

(cherry picked from commit 4542f901cb)
2024-01-07 18:46:18 +01:00
Dimitry Andric
271697da68 Merge llvm-project release/17.x llvmorg-17.0.0-rc4-10-g0176e8729ea4
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-17.0.0-rc4-10-g0176e8729ea4.

PR:		273753
MFC after:	1 month

(cherry picked from commit 8a4dda33d6)
2024-01-07 18:46:18 +01:00
Dimitry Andric
fe013be447 Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvm-project main llvmorg-17-init-19304-gd0b54bb50e51, the
last commit before the upstream release/17.x branch was created.

PR:		273753
MFC after:	1 month

(cherry picked from commit 06c3fb2749)
2024-01-07 18:46:17 +01:00
Dimitry Andric
a324c34037 Merge llvm-project release/16.x llvmorg-16.0.4-0-gae42196bc493
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-16.0.4-0-gae42196bc493 (aka 16.0.4 release).

PR:		271047
MFC after:	1 month
2023-06-22 20:22:43 +02:00
Dimitry Andric
cbe9438cfe Merge llvm-project release/16.x llvmorg-16.0.3-0-gda3cd333bea5
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-16.0.3-0-gda3cd333bea5 (aka 16.0.3 release).

PR:		271047
MFC after:	1 month
2023-06-22 20:22:35 +02:00
Dimitry Andric
9e7101a856 Merge llvm-project release/16.x llvmorg-16.0.2-0-g18ddebe1a1a9
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-16.0.2-0-g18ddebe1a1a9 (aka 16.0.2 release).

PR:		271047
MFC after:	1 month
2023-06-22 20:22:28 +02:00
Dimitry Andric
1ac55f4cb0 Merge llvm-project release/16.x llvmorg-16.0.1-0-gcd89023f7979
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-16.0.1-0-gcd89023f7979 (aka 16.0.1 release).

PR:		271047
MFC after:	1 month
2023-06-22 20:22:20 +02:00
Dimitry Andric
bdd1243df5 Merge llvm-project main llvmorg-16-init-18548-gb0daacf58f41
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-16-init-18548-gb0daacf58f41.

PR:		271047
MFC after:	1 month
2023-06-22 20:20:56 +02:00
Dimitry Andric
50d7464c3f Merge llvm-project release/15.x llvmorg-15.0.7-0-g8dfdcc7b7bf6
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15.0.7-0-g8dfdcc7b7bf6.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:05:25 +01:00
Dimitry Andric
f3fd488f1e Merge llvm-project release/15.x llvmorg-15.0.6-0-g088f33605d8a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15.0.6-0-g088f33605d8a.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:05:19 +01:00
Dimitry Andric
6246ae0b85 Merge llvm-project release/15.x llvmorg-15.0.2-10-gf3c5289e7846
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15.0.2-10-gf3c5289e7846.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:05:09 +01:00
Dimitry Andric
a4a491e223 Merge llvm-project release/15.x llvmorg-15.0.0-9-g1c73596d3454
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15.0.0-9-g1c73596d3454.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:05:02 +01:00
Dimitry Andric
61cfbce334 Merge llvm-project release/15.x llvmorg-15.0.0-rc2-40-gfbd2950d8d0d
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15.0.0-rc2-40-gfbd2950d8d0d.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:04:56 +01:00
Dimitry Andric
972a253a57 Merge llvm-project main llvmorg-15-init-17826-g1f8ae9d7e7e4
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15-init-17826-g1f8ae9d7e7e4, the last commit before
the upstream release/16.x branch was created.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:04:48 +01:00
Dimitry Andric
fcaf7f8644 Merge llvm-project main llvmorg-15-init-17485-ga3e38b4a206b
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15-init-17485-ga3e38b4a206b.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:04:38 +01:00
Dimitry Andric
753f127f3a Merge llvm-project main llvmorg-15-init-16436-g18a6ab5b8d1f
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15-init-16436-g18a6ab5b8d1f.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:03:59 +01:00
Dimitry Andric
81ad626541 Merge llvm-project main llvmorg-15-init-15358-g53dc0f10787
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15-init-15358-g53dc0f10787.

PR:		265425
MFC after:	2 weeks
2023-02-08 20:02:26 +01:00
Dimitry Andric
2a66634d1b Merge llvm-project release/14.x llvmorg-14.0.4-0-g29f1039a7285
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-14.0.4-0-g29f1039a7285, aka 14.0.4 release.

PR:		261742
MFC after:	3 days
2022-06-04 15:18:46 +02:00
Dimitry Andric
3a9a9c0ca4 Merge llvm-project release/14.x llvmorg-14.0.3-0-g1f9140064dfb
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-14.0.3-0-g1f9140064dfb.

PR:		261742
MFC after:	2 weeks
2022-05-14 13:46:42 +02:00
Dimitry Andric
fb03ea46eb Merge llvm-project release/14.x llvmorg-14.0.0-rc4-2-gadd3ab7f4c8a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-14.0.0-rc4-2-gadd3ab7f4c8a.

PR:		261742
MFC after:	2 weeks
2022-05-14 13:46:23 +02:00