544889 Commits

Author SHA1 Message Date
Jessica Clarke
509ec13f26 [NFC][Sparc] Pre-commit a test showing inefficient and broken LD/GD TLS
(cherry picked from commit dd36a6901249796a175c3058a50d97cc3a7ba52c)
2025-07-28 09:33:39 +02:00
Luke Lau
5345dc9cd3 [RISCV] Don't lose elements from False in vmerge -> vmv peephole (#149720)
In the vmerge peephole, we currently allow different AVLs for the vmerge
and its true operand.
If vmerge's VL > true's VL, vmerge can "preserve" elements from false
that would otherwise be clobbered with a tail agnostic policy on true.

    mask	1 1 1 1 0 0 0 0
    true	x x x x|. . . . AVL=4
    vmerge	x x x x f f|. . AVL=6

If we convert this to vmv.v.v we will lose those false elements:

    mask	1 1 1 1 0 0 0 0
    true	x x x x|. . . . AVL=4
    vmv.v.v	x x x x . .|. . AVL=6

Fix this by checking that vmerge's AVL is <= true's AVL.

Should fix #149335

(cherry picked from commit eafe31b293a5166522fff4f3e2d88c2b5c881381)
2025-07-28 09:30:12 +02:00
Ryotaro Kasuga
ba5aa84b54 [MachinePipeliner] Fix incorrect dependency direction (#149436)
This patch fixes a bug introduced in #145878. A dependency was added in
the wrong direction, causing an assertion failure due to broken
topological order.

(cherry picked from commit 6df012ab48ececd27359bdc9448ee101b39eea7a)
2025-07-28 09:29:43 +02:00
Florian Hahn
6df2bfd66b [AArch64,TTI] Remove RealUse check for vector insert/extract costs. (#146526)
getVectorInstrCostHelper would return costs of zero for vector
inserts/extracts that move data between GPR and vector registers, if
there was no 'real' use, i.e. there was no corresponding existing
instruction.

This meant that passes like LoopVectorize and SLPVectorizer, which
likely are the main users of the interface, would understimate the cost
of insert/extracts that move data between GPR and vector registers,
which has non-trivial costs.

The patch removes the special case and only returns costs of zero for
lane 0 if it there is no need to transfer between integer and vector
registers.

This impacts a number of SLP test, and most of them look like general
improvements.I think the change should make things more accurate for any
AArch64 target, but if not it could also just be Apple CPU specific.

I am seeing +2% end-to-end improvements on SLP-heavy workloads.

PR: https://github.com/llvm/llvm-project/pull/146526
2025-07-28 09:28:14 +02:00
Brian Cain
f6c4f0eb70 [lld] Add thunks for hexagon (#111217)
Without thunks, programs will encounter link errors complaining that the
branch target is out of range. Thunks will extend the range of branch
targets, which is a critical need for large programs. Thunks provide
this flexibility at a cost of some modest code size increase.

When configured with the maximal feature set, the hexagon port of the
linux kernel would often encounter these limitations when linking with
`lld`.

The relocations which will be extended by thunks are:

* R_HEX_B22_PCREL, R_HEX_{G,L}D_PLT_B22_PCREL, R_HEX_PLT_B22_PCREL
relocations have a range of ± 8MiB on the baseline
* R_HEX_B15_PCREL: ±65,532 bytes
* R_HEX_B13_PCREL: ±16,380 bytes
* R_HEX_B9_PCREL: ±1,020 bytes

Fixes #149689

Co-authored-by: Alexey Karyakin <akaryaki@quicinc.com>

---------

Co-authored-by: Alexey Karyakin <akaryaki@quicinc.com>
(cherry picked from commit b42f96bc057fd9e31572069b241ba130c21144e5)
2025-07-28 09:27:54 +02:00
Nikolas Klauser
564ed8e064 [libc++] Fix hash_multi{map,set}::insert (#149290)
(cherry picked from commit be3d614cc13f016b16634e18e10caed508d183d2)
2025-07-28 09:27:10 +02:00
Carlos Seo
3db29aaee5 [Flang] Fix a crash when equivalence and namelist statements are used (#150081)
Check for equivalence when generating namelist descriptors in IO.cpp.

Fixes #124489
2025-07-24 12:07:34 +02:00
Volodymyr Sapsai
1db54c705a [clang][deps] Add a release note for fixing crashes in clang-scan-deps. (#149857)
(cherry picked from commit dbc41dd5d827a3e13625a66fd2bfa83a8a4dfe83)
2025-07-24 12:04:01 +02:00
Carlos Seo
e43496bacf [Flang] Fix ASSIGN statement (#149941)
Handle the case where the assigned variable also has a pointer
attribute.

Fixes #121721

(cherry picked from commit fc0a978327215aa8883ae6f18d1e316f3c04520a)
2025-07-24 12:03:42 +02:00
Kareem Ergawy
4d6604adf1 [flang][OpenMP] Restore reduction processor behavior broken by #145837 (#150178)
Fixes #149089 and #149700.

Before #145837, when processing a reduction symbol not yet supported by
OpenMP lowering, the reduction processor would simply skip filling in
the reduction symbols and variables. With #145837, this behvaior was
slightly changed because the reduction symbols are populated before
invoking the reduction processor (this is more convenient to shared the
code with `do concurrent`).

This PR restores the previous behavior.

(cherry picked from commit 36c37b019b5daae79785e8558d693e6ec42b0ebd)
2025-07-24 12:03:24 +02:00
Florian Hahn
a91da31dd3 [LV] Vectorize maxnum/minnum w/o fast-math flags. (#148239)
Update LV to vectorize maxnum/minnum reductions without fast-math flags,
by adding an extra check in the loop if any inputs to maxnum/minnum are
NaN, due to maxnum/minnum behavior w.r.t to signaling NaNs. Signed-zeros
are already handled consistently by maxnum/minnum.

If any input is NaN,
 *exit the vector loop,
 *compute the reduction result up to the vector iteration that contained
   NaN inputs and
 * resume in the scalar loop

New recurrence kinds are added for reductions using maxnum/minnum
without fast-math flags.

PR: https://github.com/llvm/llvm-project/pull/148239
2025-07-24 12:02:55 +02:00
Heejin Ahn
dbe3ba0767 [WebAssembly] Unstackify registers with no uses in ExplicitLocals (#149626)
There are cases we end up removing some intructions that use stackified
registers after RegStackify. For example,

```wasm
bb.0:
  %0 = ...    ;; %0 is stackified
  br_if %bb.1, %0
bb.1:
```

In this code, br_if will be removed in CFGSort, so we should unstackify
%0 so that it can be correctly dropped in ExplicitLocals.

Rather than handling this in case-by-case basis, this PR just
unstackifies all stackifies register with no uses in the beginning of
ExplicitLocals, so that they can be correctly dropped.

Fixes #149097.

(cherry picked from commit b13bca7387a7aad6eaf3fa1c55bd06fe091f65ed)
2025-07-24 12:02:33 +02:00
Dunbobbin
132d231605 [DTLTO] Add COFF LLD release note for LLVM 21
DTLTO-related COFF LLD changes were cherry-picked to the LLVM 21
release branch in:
  https://github.com/llvm/llvm-project/pull/149979

This commit adds the corresponding release note, modeled after
the previously added note for ELF LLD DTLTO support.
2025-07-24 11:59:52 +02:00
Dunbobbin
6cd82c569d [DTLTO] Add LLVM release note for LLVM 21
Add a release note for the core LLVM changes for DTLTO.
2025-07-24 11:59:36 +02:00
bd1976bris
64a274fada [LLD][COFF] Make /wholearchive thin-archive member identifiers consistent (#145487)
A thin archive is an archive/library format where the archive itself
contains only references to member object files on disk, rather than
embedding the file contents.

For the non-/wholearchive case, we use the path to the archive member as
the identifier for thin-archive members (see comments in
`enqueueArchiveMember`). This patch modifies the /wholearchive path to
behave the same way.

Apart from consistency, my motivation for fixing this is DTLTO
(#126654), where having the member identifier be the path on disk allows
distribution of bitcode members during ThinLTO.

(cherry picked from commit 9f733f4324412ef89cc7729bf027cdcab912ceff)
2025-07-24 11:59:11 +02:00
Justus Klausecker
f66e874504 [LoopSimplifyCFG] Add check for missing loop preheader (#149743)
Closes #147869
Closes #149679

Adds a check for a missing loop preheader during analysis. This fixes a
nullptr dereference that happened whenever LoopSimplify was unable to
generate a preheader because the loop was entered by an indirectbr
instruction (as stated in the LoopSimplify.cpp doc comment).

(cherry picked from commit 04107209856bb39e041aa38cf40de0afa90a6b2d)
2025-07-24 11:58:40 +02:00
Orlando Cazalet-Hyams
233fdcb395 [KeyInstr] goto stmt atoms (#149101)
(cherry picked from commit 5c7c8558c856712a5ef11ff5f4e7ea7d3567f625)
2025-07-24 11:58:11 +02:00
bd1976bris
54c87e7fdd [DTLTO][LLD][COFF] Add support for Integrated Distributed ThinLTO (#148594)
This patch introduces support for Integrated Distributed ThinLTO (DTLTO)
in COFF LLD.

DTLTO enables the distribution of ThinLTO backend compilations via
external distribution systems, such as Incredibuild, during the
traditional link step: https://llvm.org/docs/DTLTO.html.

Note: Bitcode members of non-thin archives are not currently supported.
This will be addressed in a future change. This patch is sufficient to
allow for self-hosting an LLVM build with DTLTO if thin archives are
used.

Testing:
- LLD `lit` test coverage has been added, using a mock distributor to
avoid requiring Clang.
- Cross-project `lit` tests cover integration with Clang.

For the design discussion of the DTLTO feature, see:
https://github.com/llvm/llvm-project/pull/126654

(cherry picked from commit bbbbc093febffcae262cde1baa429b950842d76e)
2025-07-24 11:57:30 +02:00
bd1976bris
475ff348f1 [DTLTO][Clang] Add support for Integrated Distributed ThinLTO (#147265)
This patch introduces support for Integrated Distributed ThinLTO (DTLTO)
in Clang.

DTLTO enables the distribution of ThinLTO backend compilations via
external distribution systems, such as Incredibuild, during the
traditional link step: https://llvm.org/docs/DTLTO.html.

Testing:
- `lit` test coverage has been added to Clang's Driver tests.
- The DTLTO cross-project tests will use this Clang support.

For the design discussion of the DTLTO feature, see:
  https://github.com/llvm/llvm-project/pull/126654

(cherry picked from commit 5004c59803fdeb3389d30439a6cc8b1ff874df0c)
2025-07-24 11:54:36 +02:00
tangaac
6dde087056 [LoongArch] Strengthen stack size estimation for LSX/LASX extension (#146455)
This patch adds an emergency spill slot when ran out of registers.
PR #139201 introduces `vstelm` instructions with only 8-bit imm offset,
it causes no spill slot to store the spill registers.

(cherry picked from commit 64a0478e08829ec6bcae2b05e154aa58c2c46ac0)
2025-07-24 11:52:01 +02:00
Jens Reidel
02b2a77edb [compiler-rt][Mips] Fix stat size check on mips64 musl (#143301)
The sizes of the struct stat on MIPS64 differ in musl vs glibc.

See https://godbolt.org/z/qf9bcq8Y8 for the proof. Prior to this change,
compilation for MIPS64 musl would fail.

Signed-off-by: Jens Reidel <adrian@travitia.xyz>
(cherry picked from commit a5d6fa68e399dee9eb56f2671670085b26c06b4a)
2025-07-24 11:50:10 +02:00
Louis Dionne
da20f10b5d [libc++][NFC] Fix typos in the libc++ 21 release notes (#149536)
(cherry picked from commit d737fe2c91391a41a5b5ee8e3062d78a01936c61)
2025-07-24 11:49:46 +02:00
Ryan Prichard
1ad3d3aea6 [libc++][Android] Reenable 2 tests for Android (#149415)
Now that the Android clang has been upgraded to clang-r563880
(llvm.org/pr148998), these two tests pass again.
2025-07-24 11:49:10 +02:00
Orlando Cazalet-Hyams
c568a207d8 [KeyInstr] Fix verifier check (#149043)
The verifier check was in the wrong place, meaning it wasn't actually
checking many instructions.

Fixing that causes a test failure (coro-dwarf-key-instrs.cpp) because
coros turn off the feature but still annotate instructions with the
metadata (which is a supported situation, but the verifier doesn't like
it, and it's hard to teach the verifier to like it).

Fix that by avoiding emitting any key instruction metadata if the
DISubprogram has opted out of key instructions.

(cherry picked from commit 653872f782e1faaabc1da23769e6b35b10e74bde)
2025-07-24 11:48:40 +02:00
mintsuki
756f489266 LoongArch: Improve detection of valid TripleABI (#147952)
If the environment is considered to be the triple component as a whole,
so, including the object format, if any, and if that is the intended
behaviour, then the loongarch64 function `computeTargetABI()` should be
changed to not rely on `hasEnvironment()`, but, rather, to check if
there is a non-unknown environment set.

Without this change, using a (ideally valid) target of
loongarch64-unknown-none-elf, with a manually specified ABI of lp64s,
will result in a completely superfluous warning:

```
warning: triple-implied ABI conflicts with provided target-abi 'lp64s', using target-abi
```

(cherry picked from commit 9ed8816dc63776259d2190bdc8a7a29698c62749)
2025-07-22 10:44:55 +02:00
Alexandre Ganea
aaaa54269b [LLD][COFF] Follow up comments on pr146610 (#147152)
This is a follow-up PR for post-commit comments in
https://github.com/llvm/llvm-project/pull/146610

- Changed "exporteddllmain" references to "importeddllmain".
- Add support for x86 target and test coverage.
- Changed a comment to better express why we're skipping importing
`DllMain`.

(cherry picked from commit fcacd4e880c9a0b3f2bdaa43603aeddfa1b1cd2e)
2025-07-22 10:44:33 +02:00
Hervé Poussineau
3d520be273 [Mips] Correctly define IntPtrType (#145158)
Mips was the only architecture having PtrDiffType = SignedInt and
IntPtrType = SignedLong

This fixes a problem on mipsel-windows-gnu triple, where uintptr_t was
wrongly defined as unsigned long instead of unsigned int, leading to
problems in compiler-rt.

compiler-rt/lib/interception/interception_type_test.cpp:24:17: error:
static assertion failed due to requirement
'__sanitizer::is_same<unsigned long, unsigned int>::value':
24 | COMPILER_CHECK((__sanitizer::is_same<__sanitizer::uptr,
::uintptr_t>::value));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compiler-rt/lib/interception/../sanitizer_common/sanitizer_internal_defs.h:369:44:
note: expanded from macro 'COMPILER_CHECK'
      369 | #define COMPILER_CHECK(pred) static_assert(pred, "")
          |                                            ^~~~
compiler-rt/lib/interception/interception_type_test.cpp:25:17: error:
static assertion failed due to requirement '__sanitizer::is_same<long,
int>::value':
25 | COMPILER_CHECK((__sanitizer::is_same<__sanitizer::sptr,
::intptr_t>::value));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compiler-rt/lib/interception/../sanitizer_common/sanitizer_internal_defs.h:369:44:
note: expanded from macro 'COMPILER_CHECK'
      369 | #define COMPILER_CHECK(pred) static_assert(pred, "")
          |                                            ^~~~
compiler-rt/lib/interception/interception_type_test.cpp:27:17: error:
static assertion failed due to requirement '__sanitizer::is_same<long,
int>::value':
27 | COMPILER_CHECK((__sanitizer::is_same<::PTRDIFF_T,
::ptrdiff_t>::value));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compiler-rt/lib/interception/../sanitizer_common/sanitizer_internal_defs.h:369:44:
note: expanded from macro 'COMPILER_CHECK'
      369 | #define COMPILER_CHECK(pred) static_assert(pred, "")

(cherry picked from commit 13906724ff7aa1bc58202faac62690570dfe0dc3)
2025-07-22 10:44:08 +02:00
hev
7fd16eecf8 [LoongArch] Fix failure to widen operand for [X]VMSK{LT,GE,NE}Z (#149442)
Reported-by: tangyan <tangyan01@loongson.cn>
(cherry picked from commit 8a307ae61963a3f967052f7ea3c89aafa56934cf)
2025-07-22 10:43:28 +02:00
Timothy Herchen
25c1d7a357 [clang] Don't warn on zero literals with -std=c2y (#149688)
Fixes #149669; the old check compared with the end of the literal, but
we can just check that after parsing digits, we're pointing to one
character past the token start.

(cherry picked from commit 8366dc207a2e6b50cb8afe2d98fca68bd78bd0fa)
2025-07-22 10:43:04 +02:00
Abinaya Saravanan
17658dbedd [HEXAGON] Add AssertSext in sign-extended mpy (#149061)
The pattern i32xi32->i64, should be matched to the sign-extended
multiply op, instead of explicit sign- extension of the operands
followed by non-widening multiply (this takes 4 operations instead of
one). Currently, if one of the operands of multiply inside a loop is a
constant, the sign-extension of this constant is hoisted out of the loop
by LICM pass and this pattern is not matched by the ISEL.

This change handles multiply operand with Opcode of the type AssertSext
which is seen when the sign-extension is hoisted out-of the loop.
Modifies the DetectUseSxtw() to check for this.

(cherry picked from commit fcabb53f0c349885167ea3d0e53915e6c42271a7)
2025-07-22 10:39:51 +02:00
Sudharsan Veeravalli
cb92bc511e [RISCV] Swap source register operands in QC_SHLADD ISEL patterns (#149697)
The instruction does `rd = (rs1 << shamt) + rs2` but the ISEL patterns
had `rs1` and `rs2` the other way around which is incorrect.

(cherry picked from commit 84e689b1db02be1687c3093d66ace913250780bd)
2025-07-22 10:39:03 +02:00
Koakuma
5c69f70244 [SPARC][Driver] Move feature mode selection to Arch/Sparc.cpp (#149652)
This is so that it's performed also for flang and not just for clang.

This should fix https://github.com/llvm/llvm-project/issues/138494.

(cherry picked from commit 38fc453afdb6a4511b7c8e189f12a92559ecc396)
2025-07-22 10:38:31 +02:00
Brian Cain
51245ebda1 [lld] [hexagon] guard allocateAux: only if idx nonzero (#149690)
While building libclang_rt.asan-hexagon.so, lld would assert in
lld:🧝:hexagonTLSSymbolUpdate().

Fixes #132766

(cherry picked from commit 3e9ceae29f39456508eef5b4af4d3c895048706a)
2025-07-22 10:37:04 +02:00
Michał Górny
275fa26b0c Revert "[libclc] Add prepare-<triple> targets (#146700)"
This reverts commit 85d09de5fa19a32bbcc400928d55f9d633077640. This
change caused broken symlinks in the build directory, and the subsequent
commits fixing that introduced other issues.
2025-07-22 10:35:08 +02:00
Michał Górny
7814dca9a8 Revert "[libclc] Make library output directories explicit (#146833)"
This reverts commit 81e6552a3d6835c4e10eb981402febfac9df6156. This
change caused libclc to start installing broken symlinks that contain
absolute paths to the build directory rather than relative paths
within the install directory.
2025-07-22 10:35:07 +02:00
Michał Górny
b475893a15 Revert "[libclc] Fix target dependency"
This reverts commit 222e795347c14afce49df1540926f3a1ae493de4.
2025-07-22 10:35:07 +02:00
Michał Górny
69ee6a0edd Revert "[libclc] Change symlinks to copies on Windows (#147759)"
This reverts commit 9b5959dd9a0eb0fc005b92be7ef7f3a5e3377b81.
2025-07-22 10:35:07 +02:00
Michał Górny
68cae18965 Revert "[libclc] Move CMake for prepare_builtins to a subdirectory (#148815)"
This reverts commit 8a7a64873b13e6fd931b748fbf50b3da26fe7fca.  It broke
standalone builds since the necessary variables are now limited in scope
to `libclc/utils` while they are used in the top-level CMakeLists.
2025-07-22 10:35:07 +02:00
quic-areg
b5043a0940 [Hexagon][llvm-objdump] Improve disassembly of Hexagon bundles (#145807)
Hexagon instructions are VLIW "bundles" of up to four instruction words
encoded as a single MCInst with operands for each sub-instruction.
Previously, the disassembler's getInstruction() returned the full
bundle, which made it difficult to work with llvm-objdump.

For example, since all instructions are bundles, and bundles do not
branch, branch targets could not be printed.

This patch modifies the Hexagon disassembler to return individual
sub-instructions instead of entire bundles, enabling correct printing of
branch targets and relocations. It also introduces
`MCDisassembler::getInstructionBundle` for cases where the full bundle
is still needed.

By default, llvm-objdump separates instructions with newlines. However,
this does not work well for Hexagon syntax:

  { inst1
    inst2
    inst3
    inst4 <branch> } :endloop0

Instructions may be followed by a closing brace, a closing brace with
`:endloop`, or a newline. Branches must appear within the braces.

To address this, `PrettyPrinter::getInstructionSeparator()` is added and
overridden for Hexagon.

(cherry picked from commit ac7ceb3dabfac548caa993e7b77bbadc78af4464)
2025-07-22 10:34:17 +02:00
Jannick Kremer
0da291f8a6 Revert "Move python binding tests to lit framework" (#149012)
This reverts commit f8707f994af2582f6dc58190106946efeb43bf05.

(cherry picked from commit 7a9bef0166951a61bc7094514a20471ae45f6090)
2025-07-22 10:33:35 +02:00
Aiden Grossman
cbe68e5140 [libcxx] Switch to release branch runners
This ensures that if/when we bump the toolchain versions in the main
container that we do not break tests on the release branch.
2025-07-22 10:32:35 +02:00
clubby789
186df07d01 [DSE] Remove uninitialized from allockind when creating dummy zeroed variant function (#149336)
cc https://github.com/llvm/llvm-project/pull/138299

rustc sets `allockind("uninitialized")` - if we copy the attributes
as-is when creating a dummy function, Verify complains about
`allockind("uninitialized,zeroed")` conflicting, so we need to clear the
flag.

Co-authored-by: Jamie Hill-Daniel <jamie@osec.io>
(cherry picked from commit 74c396afb26dec74c0b799e218c63f1a26e90d21)
2025-07-22 10:31:55 +02:00
Owen Pan
607677c861 [clang-format] Fix a regression of annotating PointerOrReference (#149039)
Fixes #149010

(cherry picked from commit a8f5e9ed6b44562938ce07e2790be90be8f0a6b5)
2025-07-22 10:31:35 +02:00
Tomohiro Kashiwada
e36a7daae2 [Support/BLAKE3] quick fix for Cygwin build (#148635)
BLAKE3 1.8.2 ( imported in d2ad63a193216d008c8161879a59c5f42e0125cc )
fails to build for the Cygwin target.

see: https://github.com/BLAKE3-team/BLAKE3/issues/494

As a temporary workaround, add `&& !defined(__CYGWIN__)` to BLAKE3
locally.

resolves https://github.com/llvm/llvm-project/issues/148365

(cherry picked from commit 8de61eb01c9752f0488ed8b52d01fe3d0873ff6c)
2025-07-22 10:30:43 +02:00
Tobias Hieta
f1846e747d Use Parallel xz for test-suite sources. (#149389)
(cherry picked from commit 867ff3001e4e1e68b3f26c5ead281ea2208c4c48)
2025-07-22 10:30:13 +02:00
Peter Collingbourne
728030a452 compiler-rt: test: Use the host instead of the target to select %expect_crash.
When running tests in a cross-compiled build, %expect_crash is
run on the host, not the target, so we need to check the host
OS. config.host_os surprisingly refers to the target OS because it
is derived from CMAKE_SYSTEM_NAME which specifies the target. See:
https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_NAME.html

Another speculative fix for:
https://lab.llvm.org/buildbot/#/builders/193/builds/9070

(cherry picked from commit 968d38d1d7d9de2d5717457876bba2663b36f620)
2025-07-22 10:29:54 +02:00
Raphael Moreira Zinsly
1abeeabd65 [RISCV] Pass the MachineInstr flag as argument to allocateStack (#147531)
When not in the prologue we do not want to set the FrameSetup flag, by
passing the flag as argument we can use allocateStack correctly on those
cases.
This fixes the allocation and probe in eliminateCallFramePseudoInstr.

(cherry picked from commit 1db9eb23209826d9e799e68a9a4090f0328bf70c)
2025-07-21 18:54:42 +02:00
Tobias Hieta
cbcb48a88c Bump version to 21.1.0-rc1 llvmorg-21.1.0-rc1 2025-07-17 21:02:34 +02:00
Corentin Jabot
7ac3c62282 Revert "[Clang] Do not treat Foo -> const Foo conversion sequences as perfect" (#149272)
Reverts llvm/llvm-project#148613

Considering object argument conversion qualifications perfect leads to
situations where we prefer a non-template const qualified function over
a non-qualified template function, which is very wrong indeed.

I explored solutions to work around that, but instead, we might want to
go the GCC road and prefer the friend overload in the #147374 example,
as this seems a lot more consistent and reliable

(cherry picked from commit 28e1e7e1b4b059a2e42f68061475cddb4ad0a6a3)
2025-07-17 18:00:22 +02:00
Sirraide
dd7710b7fd [Clang] Reintroduce obsolete symbols in libclang.map (#149190)
This is a follow-up to #149079. Seems like we forgot about the fact that
the symbols also need to be in `libclang.map`.

(cherry picked from commit 7e0fde0c2f6b0b9d727ce9196956b36e91961ac4)
2025-07-17 17:59:42 +02:00