LLVM/project c9d04c5lld/include/lld/Common BPSectionOrdererBase.inc, lld/test/MachO bp-section-orderer.s

[lld] Report temporal BP profile resolution (#212127)
DeltaFile
+19-0lld/include/lld/Common/BPSectionOrdererBase.inc
+10-1lld/test/MachO/bp-section-orderer.s
+29-12 files

LLVM/project e7713eellvm/docs Extensions.md, llvm/lib/MC MCAsmInfoELF.cpp

[dyndbg][llvm][ELF] Add ELF section type for dynamic debugging (#208803)

Add ELF section type `SHT_LLVM_DYNDBG_ELF` for embedding the "inner"
unoptimized dynamic debugging ELF object within the "outer" optimized
ELF object.

RFC: https://discourse.llvm.org/t/90113
DeltaFile
+12-0llvm/docs/Extensions.md
+5-0llvm/test/tools/llvm-readobj/ELF/section-types.test
+2-0llvm/lib/MC/MCParser/ELFAsmParser.cpp
+2-0llvm/lib/MC/MCAsmInfoELF.cpp
+1-0llvm/lib/ObjectYAML/ELFYAML.cpp
+1-0llvm/lib/Object/ELF.cpp
+23-01 files not shown
+24-07 files

LLVM/project 7279e40third-party/benchmark/test basic_test.cc

[benchmark] Fix -Wunused-but-set-variable warning in basic_test (#213637)

Fix a build error when building benchmark unit tests with modern
GCC/Clang compilers under strict warning options (-Werror).

In `test/basic_test.cc`, the variable `sum` in `BM_OneTemplateFunc` was
assigned but never read, triggering `-Wunused-but-set-variable`.

Silenced the warning by marking sum with `[[maybe_unused]]`, preserving
the benchmark function's logic while ensuring clean build output.

### Description  
Fixes a build error when compiling `third-party/benchmark` unit tests
with modern GCC/Clang compilers under `-Werror`.

In `test/basic_text.cc`, the variable `sum` in `BM_OneTemplatcFunc` was
assigned but never read, triggering `-Wunused-but-set-variable`.

### Solution  

    [13 lines not shown]
DeltaFile
+3-3third-party/benchmark/test/basic_test.cc
+3-31 files

LLVM/project 17fd0c3lldb/test/API/tools/lldb-dap/server TestDAP_server.py

[lldb][test] Give a directly created lldb-dap session the init commands (#213553)

create_debug_adapter passes the commands that carry the configuration
the test suite was invoked with, and a test that builds a
DebugAdapterServer itself got none of them, so that session ran
unconfigured. It matters wherever the suite configures the debugger
through settings, such as pointing a platform at the runtime it
launches.
DeltaFile
+3-1lldb/test/API/tools/lldb-dap/server/TestDAP_server.py
+3-11 files

LLVM/project 786f2eflibcxx/utils libcxx-lit, libcxx/utils/ci run-buildbot

[libc++][CI] run-buildbot and libcxx-lit need a way to pass the paths to cmake and ninja (#213511)

macOS/Xcode don't have cmake or ninja anywhere in a default PATH, so
run-buildbot and libcxx-lit fail unless you do some PATH surgery before
running them. Allow passing them as environment variables instead, so
run-buildbot can be invoked as `CMAKE=$(xcrun --find cmake)
NINJA=$(xcrun --find ninja) CC=$(xcrun --find clang) CXX=$(xcrun --find
clang++) run-buildbot` on macOS. Allow cmake to be passed to libcxx-lit
in a similar fashion.
DeltaFile
+51-31libcxx/utils/ci/run-buildbot
+8-1libcxx/utils/libcxx-lit
+59-322 files

LLVM/project 469dcdfoffload/test .clang-format

[offload][test] Instruct clang-format to not reflow comments (#213696)

Without this, clang-format attempts to reflow check lines in tests,
resulting in broken tests.
DeltaFile
+1-0offload/test/.clang-format
+1-01 files

LLVM/project b237396llvm/lib/Transforms/AggressiveInstCombine AggressiveInstCombine.cpp, llvm/test/Transforms/AggressiveInstCombine/AMDGPU store-merge-addrspace.ll

[AggressiveInstCombine] Don't merge part stores across address spaces
DeltaFile
+102-0llvm/test/Transforms/AggressiveInstCombine/AMDGPU/store-merge-addrspace.ll
+5-1llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+107-12 files

LLVM/project ab938b4clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/test/Sema/LifetimeSafety safety.cpp

Merge branch 'users/NeKon69/issue-213435-support-allocating-freeing-functions' into users/NeKon69/issue-213435-builtin-allocating-freeing-functions
DeltaFile
+58-0clang/test/Sema/LifetimeSafety/safety.cpp
+3-2clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+61-22 files

LLVM/project 877c39allvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/test/Target/LLVMIR openmp-target-in-reduction-debug.mlir

[OpenMPIRBuilder] Handle empty blocks in restoreIPandDebugLoc (#212535)

`restoreIPandDebugLoc` previously only recovered a debug location when
the insertion block was non-empty, using its last instruction. For an
empty block it left the current debug location unchanged so instructions
emitted afterwards could have wrong debug location.

This PR enhance `restoreIPandDebugLoc` to also handle the empty-block
case: when the insertion point is at the end of an empty block,
synthesize a location scoped to the parent function's subprogram
provided the function has debug metadata.

This helps us get a valid debug location when we switch to `CodeGenIP`
in `emitOffloadingArrays` even when `CodeGenIP` is pointing to an empty
`BB`.

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

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+61-0mlir/test/Target/LLVMIR/openmp-target-in-reduction-debug.mlir
+21-6llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+82-62 files

LLVM/project e2c3b4elibsycl/unittests/mock helpers.cpp

[libsycl][Unit] Tighten mock liboffload API argument checks (#211035)

Prior to this patch, unit test default actions for mock liboffload
returned errors when receiving invalid arguments. There are only a few
valid scenarios where the runtime should expect and handle error codes
returned by liboffload (for example, checking whether a pointer is USM
or not). In most cases, the calls should not be made with invalid
arguments by libsycl at all, and especially not with the type of invalid
arguments that we can check for in default actions, like nullptrs or
invalid size values.

This patch changes such default action checks to trigger test failures
directly instead of mocking error codes.
DeltaFile
+68-109libsycl/unittests/mock/helpers.cpp
+68-1091 files

LLVM/project 3edb821llvm/test/CodeGen/X86 vector-compare-any_of.ll vector-compare-all_of.ll

[X86] vector-compare-all_of/any_of - updates tests to use reduction intrinsics (#213683)

These more closely match middle-end IR and currently expand to the
existing shuffle/bitcast patterns.
DeltaFile
+75-219llvm/test/CodeGen/X86/vector-compare-any_of.ll
+75-219llvm/test/CodeGen/X86/vector-compare-all_of.ll
+150-4382 files

LLVM/project dfcd28doffload/plugins-nextgen/common/include APIHelpers.h, offload/plugins-nextgen/cuda CMakeLists.txt

[offload] Add `dlwrap::loaded` function to check for optional symbols (#210737)

This PR adds a new template into `dlwrap` namespace that can be used to
check if a symbol was correctly loaded. It adds and easy way to see if
version of shared object in a system has required capability. We could
use it to improve prefetch in CUDA backend as noted
[here](https://github.com/llvm/llvm-project/blob/main/offload/plugins-nextgen/cuda/src/rtl.cpp#L912)
without breaking compatibility with older platforms using CUDA older
than 13.

In the case of prefetch, the new `dlwrap` API could be used like: 
```cpp
bool BatchedPrefetchAvailable = dlwrap::loaded<cuMemPrefetchBatchAsync>();
if (BatchedPrefetchAvailable)
    cuMemPrefetchAsync(....)
else
    // Current implementation
```


    [5 lines not shown]
DeltaFile
+57-30offload/plugins-nextgen/level_zero/dynamic_l0/L0DynWrapper.cpp
+58-0offload/plugins-nextgen/common/include/APIHelpers.h
+28-0offload/plugins-nextgen/level_zero/include/L0Compat.h
+10-0offload/plugins-nextgen/level_zero/include/L0CmdListManager.h
+7-1offload/plugins-nextgen/level_zero/CMakeLists.txt
+7-1offload/plugins-nextgen/cuda/CMakeLists.txt
+167-322 files not shown
+178-348 files

LLVM/project 58f3862offload/test/mapping map_ordering_tgt_alloc_present_tofrom.c, offload/test/mapping/present zero_length_array_section.c target.c

[offload] Remove `omptarget` references from tests (#208205)

Make check lines more generic so that we can move and rename components
without breaking the tests

This is in preparation for splitting off parts of libomptarget into
libompaccsupport, which will be used by both OpenACC and OpenMP. Some
debug prints will be printed from `ompaccsupport` and not `omptarget`,
thus the need for this change.
DeltaFile
+29-29offload/test/offloading/struct_mapping_with_pointers.cpp
+7-7offload/test/offloading/force-usm.cpp
+6-6offload/test/mapping/present/target_array_extension.c
+5-5offload/test/mapping/present/zero_length_array_section.c
+5-5offload/test/mapping/present/target.c
+5-5offload/test/mapping/map_ordering_tgt_alloc_present_tofrom.c
+57-5731 files not shown
+126-12637 files

LLVM/project e7b0fbbllvm/docs LangRef.md, llvm/lib/Transforms/InstCombine InstCombineLoadStoreAlloca.cpp

Update for comments.
DeltaFile
+10-10llvm/docs/LangRef.md
+11-0llvm/test/Transforms/InstCombine/atomic.ll
+10-0llvm/test/Transforms/LowerAtomic/atomic-load-store-elementwise.ll
+3-0llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+1-0llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp
+35-105 files

LLVM/project deecdb9llvm/test/Transforms/SLPVectorizer/AArch64 alt-addsub-signflip.ll

[SLP][NFC]Add extra test with alternate add/sub vectorization, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/213693
DeltaFile
+58-0llvm/test/Transforms/SLPVectorizer/AArch64/alt-addsub-signflip.ll
+58-01 files

LLVM/project e1b9d11llvm/lib/Target/AMDGPU SILowerSGPRSpills.cpp, llvm/test/CodeGen/AMDGPU wwm-regalloc-error.ll sgpr-spill-vmem-large-frame.mir

[AMDGPU] Support partial and empty WWM pools for SGPR spills

SGPR lane spilling currently treats the WWM VGPR pool as all-or-nothing. This
can fail compilation when the requested pool cannot be formed, even though
scratch spilling or a smaller spillable pool could make progress.

This PR lets ordinary SGPR spills fall back to scratch when the pool is empty
and lets WWM register allocation use a nonempty partial pool. It keeps the
full-pool requirement for strict WWM/WQM and explicit spill-carrier
preallocation.

The no-pool fallback is recorded in SIMachineFunctionInfo so frame lowering can
provide enough emergency scavenging slots. The state is also serialized to
preserve the behavior across MIR round trips.
DeltaFile
+219-0llvm/test/CodeGen/AMDGPU/wwm-regalloc-memory-fallback.ll
+95-49llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
+101-0llvm/test/CodeGen/AMDGPU/wwm-regalloc-preallocation-guard.mir
+50-0llvm/test/CodeGen/AMDGPU/wwm-regalloc-partial-pool.mir
+48-0llvm/test/CodeGen/AMDGPU/sgpr-spill-vmem-large-frame.mir
+0-29llvm/test/CodeGen/AMDGPU/wwm-regalloc-error.ll
+513-786 files not shown
+550-8712 files

LLVM/project 682a88eclang/lib/Analysis/LifetimeSafety FactsGenerator.cpp, clang/test/Sema/LifetimeSafety safety.cpp

address review
DeltaFile
+58-0clang/test/Sema/LifetimeSafety/safety.cpp
+3-2clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+61-22 files

LLVM/project f7075d0offload/liboffload/API Common.td APIDefs.td, offload/test/tools/offload-tblgen functions_basic.td enums_structs_nodiscard.td

[offload] add nodiscard support to offload-tblgen and mark ol_errc_t (#209727)

Offload API functions may fail with error codes that shouldn't be
ignored. Most notably, if `olInit` fails and its error return value is
ignored, it is easy to use the library in an invalid uninitialized
state, which can and has caused confusion. In those cases, it may be
useful to have the ability to mark some API function with
`[[nodiscard]]`

This PR adds an optional `nodiscard` property to offload-tblgen's
`Function`, `Enum`, and `Struct`. If set, an `OL_NODISCARD` macro is
emitted, which expands to `[[nodiscard]]` on >=C++17 and >=C23, and to
nothing otherwise.

`nodiscard` is set for `ol_errc_t`, meaning every call to a function
that returns it will emit a compiler warning if the return value is
ignored and the TU is compiled on a supported language mode.

`libsycl` and `llvm-gpu-loader` still build cleanly and are unaffected

    [5 lines not shown]
DeltaFile
+101-0offload/test/tools/offload-tblgen/enums_structs_nodiscard.td
+30-0offload/test/tools/offload-tblgen/functions_basic.td
+9-4offload/tools/offload-tblgen/APIGen.cpp
+13-0offload/liboffload/API/APIDefs.td
+9-0offload/liboffload/API/Common.td
+5-0offload/tools/offload-tblgen/RecordTypes.hpp
+167-46 files

LLVM/project 4905109llvm/lib/Transforms/IPO OpenMPOpt.cpp, llvm/test/Transforms/OpenMP spmdization_kernel_env_static_loop.ll

[OpenMP] Analyze the loop-body callback of the static-loop runtime entries (#211287)

Fixes #211132. Also removes the trigger for #198621, see below.

`AAKernelInfo` treats the loop body passed to the
`__kmpc_*_static_loop_*` entries as opaque and records an unknown
parallel region for it, per the TODO at the site. Consequently
`NestedParallelism` is true for any kernel whose parallel region
contains a device workshare loop, and `MayUseNestedParallelism` is
written to the kernel environment as 1 where it should be 0.

The callback is a direct function operand at the callsite, so resolve it
and consult its `AAKernelInfo`, exactly as the `__kmpc_parallel_60`
handling already does for its parallel-region operand a few lines away.
Only record an unknown region when it does not resolve, or does reach
parallel regions. The SPMD-izability half of the TODO is left alone.

Only flang lowers device workshare loops through these entries; clang
emits `__kmpc_for_static_init_4` plus an explicit loop, which the

    [54 lines not shown]
DeltaFile
+94-0llvm/test/Transforms/OpenMP/spmdization_kernel_env_static_loop.ll
+56-11llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+150-112 files

LLVM/project 8b72ae9lldb/source/Plugins/LanguageRuntime/CPlusPlus CommonABIRuntime.h CommonABIRuntime.cpp

fix: define empty functions in the header
DeltaFile
+0-21lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.cpp
+9-5lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.h
+9-262 files

LLVM/project 24a9427lld/ELF/Arch AArch64.cpp, lld/test/ELF aarch64-reloc-pauth-undef-weak.s aarch64-reloc-pauth-undef-weak-pie.s

`.tlsdescauthcall` -> `.tlsauthdesccall` (per documentation)
DeltaFile
+5-5lld/test/ELF/aarch64-tlsdesc-pauth.s
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak.s
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak-pie.s
+1-1lld/test/ELF/aarch64-reloc-pauth-undef-weak-dso.s
+1-1lld/ELF/Arch/AArch64.cpp
+9-95 files

LLVM/project 844da3dllvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64AsmPrinter.cpp, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

Merge branch 'users/kovdan01/llvm-support-auth-tlsdesc-call-rel' into users/kovdan01/lld-pauth-undef-weak
DeltaFile
+5-5llvm/test/CodeGen/AArch64/ptrauth-arm64-tls-dynamics.ll
+5-5llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+3-3llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+2-2llvm/test/MC/AArch64/tls-auth-relocs.s
+2-2llvm/test/MC/AArch64/directives-case_insensitive.s
+2-2llvm/lib/Target/AArch64/AArch64InstrInfo.td
+19-191 files not shown
+20-207 files

LLVM/project c4be3e6llvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64AsmPrinter.cpp, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

`.tlsdescauthcall` -> `.tlsauthdesccall` (per documentation)
DeltaFile
+5-5llvm/test/CodeGen/AArch64/ptrauth-arm64-tls-dynamics.ll
+5-5llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+3-3llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+2-2llvm/test/MC/AArch64/tls-auth-relocs.s
+2-2llvm/test/MC/AArch64/directives-case_insensitive.s
+2-2llvm/lib/Target/AArch64/AArch64InstrInfo.td
+19-191 files not shown
+20-207 files

LLVM/project c4203d7llvm/test/CodeGen/X86 movmsk-cmp.ll

[X86] movmsk-cmp.ll - update PR67287 test to match middle-end reduction output (#213671)

This now lowers to a vXi1 reduction (as bitcast) pattern
DeltaFile
+26-27llvm/test/CodeGen/X86/movmsk-cmp.ll
+26-271 files

LLVM/project b50252cflang/include/flang/Parser parse-tree.h, flang/lib/Lower/OpenMP Clauses.cpp

[flang][OpenMP] Version-dependent parsing of map-type-modifier

Up until 5.2, ALWAYS, CLOSE, and PRESENT were keywords of the
map-type-modifier. Starting from 6.0 they all became their own
single-keyword modifiers. This allowed specifying them together,
unlike in the past where map-type-modifier was unique.

To avoid using a single representation of the modifiers, and be
able to validate them through non-conditional properties, the
AST was rewritten back to the older form in canonicalization
when the spec version was set to 5.2 or earlier.

Now that the parser is version-aware, it can generate the desired
AST from the start.

Additionally, extract the OMPX_HOLD modifier out of the map-type-
modifier into its own AST node regardless of version.
DeltaFile
+62-19flang/lib/Parser/openmp-parsers.cpp
+1-45flang/lib/Semantics/canonicalize-omp.cpp
+7-7flang/test/Parser/OpenMP/map-modifiers-v60.f90
+4-4flang/test/Parser/OpenMP/map-modifiers.f90
+1-2flang/include/flang/Parser/parse-tree.h
+0-1flang/lib/Lower/OpenMP/Clauses.cpp
+75-786 files

LLVM/project 4cc94f9flang/include/flang/Parser user-state.h

Update flang/include/flang/Parser/user-state.h

Co-authored-by: Michael Kruse <llvm-project at meinersbur.de>
DeltaFile
+1-1flang/include/flang/Parser/user-state.h
+1-11 files

LLVM/project 796053cflang/lib/Frontend FrontendAction.cpp

Update flang/lib/Frontend/FrontendAction.cpp

Co-authored-by: Michael Kruse <llvm-project at meinersbur.de>
DeltaFile
+1-1flang/lib/Frontend/FrontendAction.cpp
+1-11 files

LLVM/project 27171d7flang/lib/Frontend FrontendAction.cpp

format
DeltaFile
+1-2flang/lib/Frontend/FrontendAction.cpp
+1-21 files

LLVM/project 3126154flang/tools/f18-parse-demo f18-parse-demo.cpp

Fix call to Parse in f18-parse-demo
DeltaFile
+1-1flang/tools/f18-parse-demo/f18-parse-demo.cpp
+1-11 files

LLVM/project 5324964flang/lib/Frontend FrontendAction.cpp

Add ci
DeltaFile
+1-1flang/lib/Frontend/FrontendAction.cpp
+1-11 files