LLVM/project 4de16aellvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch pr215935.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+47-0llvm/test/CodeGen/LoongArch/pr215935.ll
+18-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+65-02 files

LLVM/project 5b3766allvm/docs ProgrammersManual.md

[ADT][docs] Document SortedVectorMap in ProgrammersManual (NFC) (#215930)

This patch adds a section for SortedVectorMap in the Programmer's
Manual, detailing its intended use cases (small maps, minimal memory
overhead vs DenseMap, iteration in sorted key order) and trade-offs
(O(log N) binary search lookup and O(N) insertion/deletion vs O(1) in
DenseMap).

We also add a cross-reference from the existing "A sorted 'vector'"
section.
DeltaFile
+28-1llvm/docs/ProgrammersManual.md
+28-11 files

LLVM/project c0c4da8bolt/lib/Profile CMakeLists.txt, bolt/lib/Target/AArch64 CMakeLists.txt

[BOLT] Link pthread in Profile and Target libs to fix undefined pthread_rwlock_* symbols (#215748)

MCPlusBuilder.h uses llvm::sys::RWMutex, which aliases std::shared_mutex
on non-Apple platforms. Its inline lock/unlock calls pthread_rwlock_*
directly, so any shared library that instantiates these inline functions
must link pthread explicitly under -Wl,-z,defs.

This only shows up when building with -DBUILD_SHARED_LIBS=ON. With
static libs, the missing symbols get resolved elsewhere on the final
link line, so the problem stays hidden.

LLVMBOLTCore, LLVMBOLTRewrite, LLVMBOLTPasses, and LLVMBOLTUtils already
link ${LLVM_PTHREAD_LIB}; LLVMBOLTProfile and the LLVMBOLTTarget{X86,
AArch64,RISCV} libs were missing it, causing link failures.
DeltaFile
+3-0bolt/lib/Target/X86/CMakeLists.txt
+3-0bolt/lib/Target/RISCV/CMakeLists.txt
+3-0bolt/lib/Target/AArch64/CMakeLists.txt
+3-0bolt/lib/Profile/CMakeLists.txt
+12-04 files

LLVM/project fc636bellvm/include/llvm/ExecutionEngine/Orc EPCGenericJITLinkMemoryManager.h, llvm/include/llvm/ExecutionEngine/Orc/RTBridge GenericMemoryManagerProxies.h

[ORC] Move EPCGenericJITLinkMemoryManager to RTBridge proxies (#215797)

Reimplement EPCGenericJITLinkMemoryManager's reserve/initialize/release
calls using rt::Proxy objects rather than direct
ExecutorProcessControl::callSPSWrapperAsync calls, matching
EPCGenericMemoryAccess and EPCGenericDylibManager. The manager's
behavior is unchanged.

Details:

* SymbolAddrs (five ExecutorAddrs) becomes Bindings: the allocator
instance address plus rt::Proxy handles.

* The proxy types and SPS specs are hoisted into shared headers --
RTBridge/GenericMemoryManagerProxies.h and
RTBridge/SPS/GenericMemoryManagerProxySpecs.h -- since they now need
only Shared/SPS vocabulary. Deinitialize is included in the family for
completeness though this manager does not call it.


    [9 lines not shown]
DeltaFile
+39-58llvm/lib/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.cpp
+23-44llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
+62-0llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS/GenericMemoryManagerProxySpecs.h
+44-0llvm/include/llvm/ExecutionEngine/Orc/RTBridge/GenericMemoryManagerProxies.h
+20-8llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp
+188-1105 files

LLVM/project fd3581allvm/lib/Transforms/IPO WholeProgramDevirt.cpp, llvm/test/ThinLTO/X86 devirt_function_alias2.ll devirt-alias-attributes.ll

[WPD] Dereference `GlobalAlias` targets
DeltaFile
+84-0llvm/test/ThinLTO/X86/devirt-alias-cross-module-interposable.ll
+78-0llvm/test/ThinLTO/X86/devirt-alias-attributes-interposable.ll
+65-0llvm/test/ThinLTO/X86/devirt-alias-cross-module.ll
+53-0llvm/test/ThinLTO/X86/devirt-alias-attributes.ll
+12-4llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+5-3llvm/test/ThinLTO/X86/devirt_function_alias2.ll
+297-76 files

LLVM/project ad40ed3llvm/lib/Transforms/IPO LowerTypeTests.cpp ThinLTOBitcodeWriter.cpp, llvm/test/Transforms/LowerTypeTests promoted-internal.ll

[CFI] Create an external linkage alias instead of promoting internals
DeltaFile
+19-32llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+35-0llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+29-0llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
+10-7llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
+4-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
+3-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+100-432 files not shown
+104-478 files

LLVM/project e81a124lldb/source/Plugins/ExpressionParser/Clang ClangUserExpression.cpp

[lldb] Guard against null dereference in GetCppObjectPointer (#215710)

ClangUserExpression::GetCppObjectPointer dereferenced the ValueObjectSP
returned by GetObjectPointerValueObject before checking it for null. Fix
by moving the existing check above the child lookups.
DeltaFile
+3-3lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
+3-31 files

LLVM/project 0825717clang/test/OffloadTools/clang-linker-wrapper linker-wrapper-image.c, llvm/include/llvm/Frontend/Offloading Utility.h OffloadWrapper.h

[Offload] Keep empty COFF offload entry ranges alive (#215390)

A Windows offload link can have no real offload entries. One example is
a HIP program, or a HIP-related host-only object, built with RDC
but with no kernels or registered device globals. The wrapper still
emits registration code that refers to the offload entry range.

On COFF this range is built from ordered sections. Empty start and stop
sections let `lld-link /opt:ref` discard them. The registration code
then has relocations against discarded `__start_llvm_offload_entries`
and `__stop_llvm_offload_entries` symbols, and the link fails.

Linux avoids this through the ELF section-retention path. The wrapper
emits a dummy `llvm_offload_entries` section entry and places it in
`llvm.used`, which gives the section a retain flag in the ELF object.
That keeps the section alive under `--gc-sections`, so the linker can
still synthesize the `__start` and `__stop` symbols.

The same fix does not map to COFF. COFF does not use ELF-style

    [20 lines not shown]
DeltaFile
+89-0llvm/test/tools/llvm-offload-wrapper/coff-opt-ref.ll
+26-10llvm/lib/Frontend/Offloading/Utility.cpp
+12-12clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c
+7-7llvm/include/llvm/Frontend/Offloading/OffloadWrapper.h
+8-0llvm/test/tools/llvm-offload-wrapper/offload-wrapper.ll
+3-4llvm/include/llvm/Frontend/Offloading/Utility.h
+145-331 files not shown
+149-337 files

LLVM/project 21f3d78llvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-vector-dynamic-idx-bitcasts.ll

[AMDGPU] Fix a crash caused by bitcast type mismatch

Fixes ROCM-29461.
DeltaFile
+22-0llvm/test/CodeGen/AMDGPU/promote-alloca-vector-dynamic-idx-bitcasts.ll
+4-2llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+26-22 files

LLVM/project 38d1460lldb/include/lldb/Symbol Symbol.h, lldb/source/Symbol Symtab.cpp Symbol.cpp

[lldb] Change the Symbol rep for re-export symbols (#213356)

On Darwin system, we have re-export symbols. A library can have a symbol
table entry for function A() that is a re-export symbol; it's only data
is the name of the actual function to call, B(). When code calls A(),
the dynamic loader will resolve this to B() in some other library.

Previously, Symbol was using its AddressRange's Address object's offset
field to point to lldb memory where the name of the target function,
B(), was stored in the binary symbol table. In December Alex put up a PR
to stop abusing the Address object in this way, and store (1) the name
of the target function, and (2) once it has been looked up, the name of
the target function's library.
https://github.com/llvm/llvm-project/pull/172565

Alex originally added a ConstString target_name, FileSpec solib to
Symbol, which increased the size of this object, and lldb stores many of
them, so this was a problem.


    [14 lines not shown]
DeltaFile
+206-89lldb/source/Symbol/Symbol.cpp
+41-62lldb/unittests/Symbol/SymtabTest.cpp
+88-10lldb/include/lldb/Symbol/Symbol.h
+1-1lldb/source/Symbol/Symtab.cpp
+336-1624 files

LLVM/project ff494c6llvm/include/llvm/CodeGen MachineModuleInfo.h, llvm/lib/CodeGen MachineModuleInfo.cpp

[MachineModuleInfo] add a grouping mechanism to defer deletion MF (#214525)

Add a mechanism so that We can defer deleting the MF after a function is
finalized because there are cases in which we want to late-inline those
MF into some caller.

commit-id:d24afd34
DeltaFile
+132-0llvm/unittests/CodeGen/MachineModuleInfoTest.cpp
+21-1llvm/include/llvm/CodeGen/MachineModuleInfo.h
+17-1llvm/lib/CodeGen/MachineModuleInfo.cpp
+1-0llvm/unittests/CodeGen/CMakeLists.txt
+171-24 files

LLVM/project 24a22b0llvm/lib/DebugInfo/DWARF DWARFContext.cpp, llvm/tools/llvm-dwarfdump llvm-dwarfdump.cpp

Add use case for clearDWO in llvm-dwarfdump
DeltaFile
+17-5llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
+9-0llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
+26-52 files

LLVM/project 1e798c1llvm/include/llvm/ADT SortedVectorMap.h, llvm/include/llvm/ProfileData SampleProf.h

[ADT][ProfileData] Introduce SortedVectorMap and switch CallTargetMap to it (#215733)

This patch introduces SortedVectorMap, a map implementation backed by
a sorted SmallVector, and switches SampleRecord::CallTargetMap from
DenseMap<FunctionId, uint64_t> to
SortedVectorMap<FunctionId, uint64_t, 0>.

Commit 3746f3e4d612 previously changed CallTargetMap from
std::unordered_map<FunctionId, uint64_t> to DenseMap. However, greater
than 97% of CallTargetMap instances have no more than one
element. When storing a single callee, the DenseMap incurs over 60x
memory overhead compared to a single std::pair<FunctionId, uint64_t>
(allocating a 64-bucket table and bit vector of ~1.5 KB vs 24
bytes). Since we instantiate CallTargetMap for every call site, this
~1.5 KB table floor per record adds up to gigabytes of wasted heap
memory across a large profile.

SortedVectorMap keeps key-value pairs in contiguous memory ordered by
key and uses std::lower_bound for lookups. Configuring N = 0 inline

    [20 lines not shown]
DeltaFile
+138-0llvm/include/llvm/ADT/SortedVectorMap.h
+83-0llvm/unittests/ADT/SortedVectorMapTest.cpp
+2-1llvm/include/llvm/ProfileData/SampleProf.h
+1-0llvm/unittests/ADT/CMakeLists.txt
+224-14 files

LLVM/project e37b656clang/test/CIR/CodeGen try-no-throwing-calls.cpp try-catch-non-trivial-copy.cpp, clang/test/CIR/CodeGenCXX typeid.cpp

[CIR] Use CIR integer type for EH personality function signature (#215901)

We had previously been using the MLIR builtin i32 type as the return
type when creating the declaration for exception handling personality
functions. This caused the calling convention lowering to fail because
it wasn't expecting non-CIR types in a CIR function.

This change updates the code that builds the declaration to use the CIR
s32 type. Multiple tests that had been disabling calling convention
lowering because of the above problem can now leave it enabled.
DeltaFile
+5-4clang/test/CIR/CodeGen/try-catch.cpp
+2-4clang/test/CIR/CodeGenCXX/typeid.cpp
+2-4clang/test/CIR/CodeGen/try-no-throwing-calls.cpp
+2-4clang/test/CIR/CodeGen/try-catch-non-trivial-copy.cpp
+2-4clang/test/CIR/CodeGen/try-catch-all-with-cleanup.cpp
+2-4clang/test/CIR/CodeGen/invoke-attrs.cpp
+15-245 files not shown
+24-4111 files

LLVM/project c6d85cdclang/test/CodeGen builtins-nvptx.c, llvm/lib/Analysis ConstantFolding.cpp

[AMDGPU] Allow constant folding of bfloat
DeltaFile
+39-8llvm/test/CodeGen/AMDGPU/llvm.sin.bf16.ll
+39-8llvm/test/CodeGen/AMDGPU/llvm.cos.bf16.ll
+39-8llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sin.bf16.ll
+39-8llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cos.bf16.ll
+5-5clang/test/CodeGen/builtins-nvptx.c
+3-3llvm/lib/Analysis/ConstantFolding.cpp
+164-406 files

LLVM/project b55d1b4llvm/lib/Target/NVPTX NVPTXPassRegistry.def NVPTXTargetMachine.cpp

[NVPTX] Add NewPM boilerplate to NVPTXPrologEpilog (#215332)
DeltaFile
+40-19llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
+9-2llvm/lib/Target/NVPTX/NVPTX.h
+2-2llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
+1-0llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
+52-234 files

LLVM/project c899f7cllvm/lib/Transforms/Utils Local.cpp

[DebugInfo] Print the record in the salvage debug line (#215903)

The line takes the record pointer, so -debug prints an address rather
than the record.

Changes -debug output only.
DeltaFile
+1-1llvm/lib/Transforms/Utils/Local.cpp
+1-11 files

LLVM/project 9cdbd68flang/lib/Optimizer/OpenACC/Transforms ACCDeclareActionConversion.cpp, flang/test/Fir/OpenACC declare-action-conversion.fir

[flang][OpenACC] Handle declare actions on CUF allocation ops (#214568)

Recover the typed descriptor from cuf.allocate and cuf.deallocate when
inserting calls to OpenACC declare-action recipes. Add conversion and
lowering coverage for pinned allocations.
DeltaFile
+33-0flang/test/Fir/OpenACC/declare-action-conversion.fir
+29-0flang/test/Lower/OpenACC/acc-declare-cuda-pinned.f90
+23-0flang/test/Lower/OpenACC/acc-declare-cuda-pinned-deallocate.f90
+5-0flang/lib/Optimizer/OpenACC/Transforms/ACCDeclareActionConversion.cpp
+90-04 files

LLVM/project 5ca6f7ellvm/include/llvm/ProfileData SampleProfWriter.h SampleProfReader.h, llvm/unittests/ProfileData SampleProfTest.cpp

[ProfileData] Remove OnDiskMode from SecFuncOffsetTable (#215876)

This patch removes code related to OnDiskMode on both the reader and
writer sides.

Originally, I was going to use OnDiskChainedHashTable in
SecFuncOffsetTable, but I have decided to go with Eytzinger-based
tables.  Note that we have never deployed OnDiskChainedHashTable-based
SecFuncOffsetTable.

RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/8

Assisted-by: Antigravity
DeltaFile
+0-83llvm/unittests/ProfileData/SampleProfTest.cpp
+7-74llvm/include/llvm/ProfileData/SampleProfReader.h
+0-47llvm/include/llvm/ProfileData/SampleProfWriter.h
+7-2043 files

LLVM/project a46d86dllvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/CodeGen/ARM ldexp.ll llvm.frexp.ll

RuntimeLibcalls: Stop improperly reporting fp128 long double calls on ARM

32-bit ARM's long double is IEEE double, so l suffixed calls do not have fp128
type. Additionally, the f128 typed / suffixed functions are not built in glibc as
__HAVE_FLOAT128 is defined to 0 in the arch config. Remove the testcases
which emitted nonexistent or wrongly typed calls and replace with error
tests.

Related: #44744

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+5-49llvm/test/CodeGen/ARM/ldexp-fp128.ll
+1-52llvm/test/CodeGen/ARM/llvm.frexp.ll
+45-0llvm/test/CodeGen/RISCV/fp128.ll
+0-10llvm/test/CodeGen/ARM/ldexp.ll
+6-3llvm/include/llvm/IR/RuntimeLibcalls.td
+2-2llvm/test/CodeGen/Generic/fp128-exp10-libcall.ll
+59-1166 files

LLVM/project 0f46bf9llvm/test/CodeGen/ARM vector-lrint.ll, llvm/test/CodeGen/X86 vector-llrint.ll fp128-libcalls-strict-gnu.ll

RuntimeLibcalls: Fix reporting incorrectly typed fp128 long double functions

l-suffixed long double math functions are fp128 only when the target's
long double is fp128. The default set provided them on every target that was
not x87 or ppc_fp128, so targets using double as long double wrongly reported
the fp128 l-suffixed functions.

Update tests that were reliant on phantom fp128 calls. These are only available
with glibc on select targets. In cases where the target supports the calls in
some triple, split the tests. In cases where the target has no fp128 library
support, delete the tests.

Related: #44744

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+21-3,157llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
+5-2,046llvm/test/CodeGen/X86/fp128-libcalls.ll
+0-1,547llvm/test/CodeGen/X86/vector-lrint.ll
+1,283-0llvm/test/CodeGen/X86/fp128-libcalls-strict-gnu.ll
+0-1,205llvm/test/CodeGen/ARM/vector-lrint.ll
+0-868llvm/test/CodeGen/X86/vector-llrint.ll
+1,309-8,82347 files not shown
+2,503-12,08353 files

LLVM/project 8bc07a7llvm/lib/CodeGen/SelectionDAG LegalizeFloatTypes.cpp, llvm/test/CodeGen/NVPTX fp128-conv-no-libcall-error.ll

DAG: Gracefully diagnose missing FP conversion libcalls when softening

Diagnose the missing libcall and return poison instead.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+70-0llvm/test/CodeGen/NVPTX/fp128-conv-no-libcall-error.ll
+46-14llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+116-142 files

LLVM/project 830bc17llvm/cmake config-ix.cmake

[Darwin] Silence error if `ld-classic` not found (#215890)

Silence the `unable to find utility` xcrun error if `ld-classic` not
found.
DeltaFile
+1-0llvm/cmake/config-ix.cmake
+1-01 files

LLVM/project 5721918clang/test/CodeGenHLSL/resources RWTextures-Subscript.hlsl, llvm/lib/Target/DirectX DXILResourceAccess.cpp DXILOpLowering.cpp

[HLSL][DirectX] Implement lowering of texture stores (#212364)

Fixes https://github.com/llvm/llvm-project/issues/194930

This PR implements the DirectX lowering of texture stores via the
subscript operator (`.operator[]`).

Also adds missing frontend tests exercising stores to textures via the
subscript operator.

Also fixes an issue with `lowerTextureLoad` incorrectly supplying a mip
level to texture loads on UAV textures (except multisampled UAV
textures) which caused validation errors.

An UndefValue is used in the lowering because DXIL is based on an older
version of LLVM that requires the use of undef.

Assisted by: Claude Opus 5
DeltaFile
+176-0llvm/test/CodeGen/DirectX/TextureStore.ll
+132-42llvm/lib/Target/DirectX/DXILOpLowering.cpp
+153-0llvm/test/CodeGen/DirectX/ResourceAccess/store_texture.ll
+58-11llvm/lib/Target/DirectX/DXILResourceAccess.cpp
+61-0clang/test/CodeGenHLSL/resources/RWTextures-Subscript.hlsl
+59-0llvm/test/CodeGen/DirectX/TextureLoad.ll
+639-535 files not shown
+764-5311 files

LLVM/project 58599fellvm/lib/DWARFLinker/Parallel DWARFLinkerCompileUnit.h DWARFLinkerImpl.cpp, llvm/test/tools/dsymutil/Inputs/module-odr-language debug-map.map 1.ll

[DWARFLinker] Consider module units when creating the type unit (#215731)

The parallel linker creates the artificial type unit only when some
compile unit uses an ODR language, but it looks for that language in the
compile units of the object files alone. A clang module unit decides its
own ODR availability from its own DW_AT_language, so a module built as
C++ or ObjC++ imported from an object file whose units are all C, ObjC
or Swift places DIEs in the type table which does not exist, asserting
in CompileUnit::cloneDIE and dereferencing null without assertions.

Scan the languages of the module units as well, so a module which
deduplicates types always has a type unit to hold them.

rdar://182719465
DeltaFile
+37-0llvm/test/tools/dsymutil/X86/module-odr-language.test
+35-0llvm/test/tools/dsymutil/Inputs/module-odr-language/M.ll
+33-0llvm/test/tools/dsymutil/Inputs/module-odr-language/1.ll
+13-0llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
+7-0llvm/test/tools/dsymutil/Inputs/module-odr-language/debug-map.map
+3-0llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.h
+128-06 files

LLVM/project 33d5496lldb/include/lldb/Symbol SymbolLocator.h, lldb/source/Core DynamicLoader.cpp

[lldb] Search for a corefile's images before loading any of them

A userland or kernel corefile can list hundreds of images, and searching for
one can shell out to a symbol server or fetch over the network. Searching for
them one at a time is where loading such a corefile spends its time.

Add a batch form of SymbolLocator::Locate that runs the searches on the
debugger's thread pool, gated on target.parallel-module-load. Results come
back in the order the requests were given, since that order decides the
Target's module order. Only the results are ordered, and anything a search
reports to the user arrives in whatever order the searches finish in.

Only the plugin searches run concurrently, so a platform hook does not have to
be thread safe to take part, and reading a binary's UUID out of memory stays
on the calling thread.

Setting up a platform binary can replace the Target's platform and dynamic
loader, and now happens for every image before any of them is searched for, so
the platform a corefile asks for is the one all of its images are searched

    [4 lines not shown]
DeltaFile
+141-4lldb/unittests/Symbol/SymbolLocatorTest.cpp
+78-63lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+76-11lldb/source/Symbol/SymbolLocator.cpp
+32-20lldb/source/Core/DynamicLoader.cpp
+25-0lldb/test/API/macosx/lc-note/multiple-binary-corefile/TestMultipleBinaryCorefile.py
+19-0lldb/include/lldb/Symbol/SymbolLocator.h
+371-986 files

LLVM/project cf5c4b8lldb/include/lldb/Symbol SymbolLocator.h, lldb/include/lldb/Target Platform.h

[lldb] Consult the platform before the symbol locator plugins (NFC)

A symbol locator plugin has no Platform to consult, so a platform that knows
where its binaries live cannot take part in a search. The only way to reach
one is Platform::GetSharedModule, which also creates the module and registers
it, so the lookup cannot be reused by a caller that wants to search for many
binaries before creating any.

Add a hook that only answers where the files are. An answer ends the search,
so an override owns what the plugins would otherwise have been asked for.

No platform overrides it yet. A follow-up moves PlatformDarwinKernel's kext
and kernel index lookups behind it.

Assisted-by: Claude
DeltaFile
+70-0lldb/unittests/Symbol/SymbolLocatorTest.cpp
+18-0lldb/include/lldb/Target/Platform.h
+10-0lldb/source/Symbol/SymbolLocator.cpp
+4-0lldb/include/lldb/Symbol/SymbolLocator.h
+1-0lldb/source/Core/DynamicLoader.cpp
+103-05 files

LLVM/project ccf2349llvm/lib/Target/MSP430 MSP430CodeGenPassBuilder.cpp

[MSP430] Add AsmPrinter names

So that -stop-before=msp430-asm-printer works, which is used in some
DebugInfo tests.

Reviewers: aeubanks, asl

Pull Request: https://github.com/llvm/llvm-project/pull/215909
DeltaFile
+10-1llvm/lib/Target/MSP430/MSP430CodeGenPassBuilder.cpp
+10-11 files

LLVM/project 49bc892clang/test/SemaCXX coroutine-new-operator.cpp, flang/docs/MeetingNotes/2026 2026-08-12.md

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+699-0llvm/test/Transforms/ConstraintElimination/header-induction-start-bounds.ll
+84-0flang/docs/MeetingNotes/2026/2026-08-12.md
+39-30libcxx/test/benchmarks/containers/associative/associative_container_benchmarks.h
+49-0clang/test/SemaCXX/coroutine-new-operator.cpp
+40-0llvm/test/Transforms/ArgumentPromotion/optnone.ll
+19-19libcxx/test/benchmarks/containers/sequence/sequence_container_benchmarks.h
+930-49150 files not shown
+1,479-351156 files

LLVM/project 90e89aclldb/include/lldb/Symbol SymbolLocator.h, lldb/source/Core DynamicLoader.cpp

[lldb] Add a unified entry point for locating a binary and its symbols

The three-plugin composition that finds a binary and its symbol file is open
coded in several places. Give it one home, as a pure function of a module
spec, so that a caller holding several binaries can search for all of them
before creating any.

Nothing on this path takes a lock, where ModuleList::GetSharedModule holds the
shared module list's lock across the plugin search. That is what will make
searching for several binaries at once worth doing.

A miss that nothing could explain gets its own error type rather than an error
code, because a Status carrying an errno converts to the same llvm::ECError,
and a caller composing its own message for a plain miss must not swallow a
failure to reach a symbol server.

DynamicLoader's search no longer runs twice for a binary that is not already
known, and a module created from a located binary is now registered in the
shared module list, so a second Target asking for the same binary reuses it.

    [2 lines not shown]
DeltaFile
+201-0lldb/unittests/Symbol/SymbolLocatorTest.cpp
+45-36lldb/source/Core/DynamicLoader.cpp
+60-0lldb/include/lldb/Symbol/SymbolLocator.h
+49-0lldb/source/Symbol/SymbolLocator.cpp
+1-0lldb/unittests/Symbol/CMakeLists.txt
+356-365 files