LLVM/project 1531047 — llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp

[NFC][AMDGPU] Remove redundant add/mul check (#240881)

Remove redundant add/mul check. Same check is done two statements
earlier.

Signed-off-by: John Lu <John.Lu at amd.com>
DeltaFile
+1-6llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+1-61 files

LLVM/project 6f1dd47 — llvm/lib/Target/AArch64 AArch64InstrInfo.cpp

fixup! [AArch64] Support direct RCPC3 FP atomic loads and stores
DeltaFile
+20-0llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+20-01 files

LLVM/project c5849a9 — llvm/test/CodeGen/SystemZ foldmemop-vec-unary.mir frame-28.mir

[SystemZ](NFC) Drop `tracksRegLiveness: true` from MIR tests (#241217)
DeltaFile
+0-24llvm/test/CodeGen/SystemZ/foldmemop-vec-binops.mir
+0-16llvm/test/CodeGen/SystemZ/foldmemop-vec-fusedfp.mir
+0-13llvm/test/CodeGen/SystemZ/foldmemop-vec-cmp.mir
+0-9llvm/test/CodeGen/SystemZ/fold-copy-vector-immediate.mir
+0-8llvm/test/CodeGen/SystemZ/frame-28.mir
+0-7llvm/test/CodeGen/SystemZ/foldmemop-vec-unary.mir
+0-7770 files not shown
+0-19776 files

LLVM/project eacef60 — llvm/include/llvm/MC MCGOFFAttributes.h MCSymbolGOFF.h, llvm/lib/MC GOFFObjectWriter.cpp

[SystemZ][z/OS] Make symbols renameable (#239692)

z/OS can rename symbols, but only if the symbol is marked as renameable
in the ESD record. Until now all symbols were emitted as non-renameable.
Mark them renameable by default, with these exceptions:
- CELQSTRT and CELQINPL stay non-renameable.
- CELQBST is renameable. Section-level PR symbols are unchanged.

Add a renameable flag to MCSymbolGOFF and the ER attributes, and update
the affected tests.

Note that HLASM has no way to express this flag, so it is only visible
in the GOFF object output.

Assisted by: IBM Bob
DeltaFile
+12-4llvm/include/llvm/MC/MCSymbolGOFF.h
+7-5llvm/lib/MC/GOFFObjectWriter.cpp
+5-3llvm/lib/Target/SystemZ/SystemZXPLINKAsmPrinter.cpp
+3-3llvm/test/CodeGen/SystemZ/zos-section-1.ll
+3-2llvm/include/llvm/MC/MCGOFFAttributes.h
+3-0llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h
+33-172 files not shown
+35-198 files

LLVM/project 22697b3 — offload/include device.h, offload/liboffload/src OffloadImpl.cpp

[Offload][Omp] Call liboffload memAlloc/Free

Remove helpers and call the normal liboffload routines for
memory allocation.

Assisted by Claude.
DeltaFile
+11-19offload/libompaccsupport/device.cpp
+0-20offload/liboffload/src/OffloadImpl.cpp
+15-1offload/plugins-nextgen/common/src/PluginInterface.cpp
+6-4offload/include/device.h
+7-0offload/plugins-nextgen/common/include/PluginInterface.h
+39-445 files

LLVM/project 9e81570 — offload/libompaccsupport DiagnosticPrinter.cpp, offload/plugins-nextgen/common/include MemoryManager.h PluginInterface.h

[Offload][Omp] Track allocation kind and host data in libomptarget

Move OpenMP specific tracking of kind and host data to libomptarget.

Assisted by Claude.
DeltaFile
+206-21offload/libompaccsupport/DiagnosticPrinter.cpp
+38-31offload/plugins-nextgen/common/src/PluginInterface.cpp
+15-34offload/plugins-nextgen/common/include/ErrorReporting.h
+45-0offload/test/sanitizer/double_free_mapped_ptr.c
+18-26offload/plugins-nextgen/common/include/PluginInterface.h
+14-19offload/plugins-nextgen/common/include/MemoryManager.h
+336-13116 files not shown
+430-18122 files

LLVM/project 1b9dcb7 — offload/include DiagnosticPrinter.h, offload/liboffload/API Diagnostic.td

[Offload][Omp] Split plugin diagnostics into detection & messaging

The plugin interface tracks a allocations and kernels (when TrackAllocationTraces
and TrackNumKernelLaunches are enabled) to emit diagnostic messages.

These messages currently contain OpenMP specific data that needs to be carried
through the Plugin Interface.

This PR splits this support in two pieces: tracking and detection that is
kept inside the plugins, and reporting of the error which is done through
a handler set from libomptarget.

A new diagnostic handler type is added, and the API to associate it to a device
are added to liboffload.

This will allow to handle the OpenMP specific data fromb the libomptarget handler
and remove it from the Plugin Interface (not done in this PR).
DeltaFile
+245-292offload/plugins-nextgen/common/include/ErrorReporting.h
+341-0offload/libompaccsupport/DiagnosticPrinter.cpp
+127-0offload/liboffload/API/Diagnostic.td
+64-0offload/plugins-nextgen/common/src/ErrorReporting.cpp
+28-12offload/plugins-nextgen/common/src/PluginInterface.cpp
+23-0offload/include/DiagnosticPrinter.h
+828-30410 files not shown
+880-30716 files

LLVM/project fdea652 — offload/liboffload/API Diagnostic.td, offload/libompaccsupport DiagnosticPrinter.cpp

Restore old behavior of always aborting
DeltaFile
+18-25offload/plugins-nextgen/common/include/ErrorReporting.h
+8-18offload/plugins-nextgen/common/src/PluginInterface.cpp
+4-6offload/liboffload/API/Diagnostic.td
+2-3offload/plugins-nextgen/common/src/ErrorReporting.cpp
+2-2offload/plugins-nextgen/amdgpu/src/rtl.cpp
+2-2offload/libompaccsupport/DiagnosticPrinter.cpp
+36-561 files not shown
+37-577 files

LLVM/project 8a18cee — llvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/test/CodeGen/AArch64 pauth-lr-non-branch-target.ll aarch64-signedreturnaddress.ll

[AArch64] Treat PAUTH_EPILOGUE as a scheduling boundary (#239157)

Machine schedulers can move `PAUTH_EPILOGUE` ahead of other epilogue
instructions, leaving instructions between return address authentication
and `RET`. This prevents the PAuth lowering pass from forming a combined
authenticated return.

Treat `PAUTH_EPILOGUE` as a scheduling boundary to preserve its position
relative to surrounding instructions. For example, the Armv8.3-A
return-address extraction sequence changes from `autiasp; xpaci x0; ret`
to `xpaci x0; retaa`.

Extend the scheduler regression to check `PAUTH_EPILOGUE` ordering under
both pre-RA and post-RA scheduling, and update the return-address and
PAuthLR speculative load hardening checks for the resulting instruction
order.

Split from https://github.com/llvm/llvm-project/pull/237467.
DeltaFile
+3-4llvm/test/CodeGen/AArch64/misched-branch-targets.mir
+2-2llvm/test/CodeGen/AArch64/sign-return-address-pauthlr-slh.ll
+4-0llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+1-2llvm/test/CodeGen/AArch64/aarch64-signedreturnaddress.ll
+1-1llvm/test/CodeGen/AArch64/pauth-lr-non-branch-target.ll
+11-95 files

LLVM/project 57f05c5 — lldb/tools/lldb-dap/extension tsconfig.json package-lock.json, lldb/tools/lldb-dap/extension/src/webview tsconfig.json

[lldb-dap][ext] Set the tsconfig types for TypeScript 6 (#240863)

TypeScript 6 no longer includes every @types package by default. so we
get lsp error in the unit tests and the webview.

explicitly list the global packages the extension uses. moduleResolution
'node' is deprecated in TypeScript 6.
DeltaFile
+21-21lldb/tools/lldb-dap/extension/package-lock.json
+3-2lldb/tools/lldb-dap/extension/tsconfig.json
+3-2lldb/tools/lldb-dap/extension/src/webview/tsconfig.json
+27-253 files

LLVM/project 74390a6 — llvm/cmake/modules HandleLLVMOptions.cmake

Revert "[CMake] message type: FATAL_ERROR instead of ERROR" (#241321)

Reverts llvm/llvm-project#174947

The error is now indeed fatal, but it fires also when using clang-cl,
breaking our builds. See comment on the original PR.
DeltaFile
+1-1llvm/cmake/modules/HandleLLVMOptions.cmake
+1-11 files

LLVM/project a539adc — mlir/include/mlir/Conversion/VectorToGPUCommon VectorToGPUUtils.h, mlir/lib/Conversion/VectorToGPU VectorToGPU.cpp

[mlir][VectorToGPU] Split VectorToNVGPU from VectorToGPU (#238804)

VectorToGPU contains lowering to both the GPU and NVGPU dialects,
causing users of the generic GPU conversion to link NVGPU dependencies.

Move the NVGPU lowering into a separate VectorToNVGPU library and
introduce the convert-vector-to-nvgpu pass. Remove the use-nvgpu option
from convert-vector-to-gpu, which retains the generic GPU lowering.

Share common helpers through `MLIRVectorToGPUCommonConversion`. Preserve
the existing lowering behaviour for both paths.

Related: [#236134](https://github.com/llvm/llvm-project/pull/236134)

---------

Co-authored-by: Markus Böck <markus.boeck02 at gmail.com>
DeltaFile
+0-863mlir/test/Conversion/VectorToGPU/vector-to-mma-ops-mma-sync.mlir
+863-0mlir/test/Conversion/VectorToNVGPU/vector-to-mma-ops-mma-sync.mlir
+18-793mlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp
+731-0mlir/lib/Conversion/VectorToNVGPU/VectorToNVGPU.cpp
+240-0mlir/lib/Conversion/VectorToGPUCommon/VectorToGPUUtils.cpp
+80-0mlir/include/mlir/Conversion/VectorToGPUCommon/VectorToGPUUtils.h
+1,932-1,65610 files not shown
+2,066-1,73416 files

LLVM/project 2f891a4 — libc/test/src/math/smoke exp2bf16_test.cpp

[libc] Fix -Wunused-variable in math/smoke/exp2bf16_test.cpp (#241319)

The variable may end up unused in certain rounding modes.
DeltaFile
+1-1libc/test/src/math/smoke/exp2bf16_test.cpp
+1-11 files

LLVM/project e753d1c — llvm/include/llvm/Transforms/IPO Attributor.h

[Attributor][NFC] Only look for callback arguments of call site arguments (#240912)

`getArgNo` looked for a callback callee argument for every position
kind, e.g. for the attribute index of every argument.
Only call site arguments can map to a different argument.

Attributor passes on CTMark files, on top of the other pending
Attributor compile-time changes: -0.1% to -0.4% instructions.

Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
Co-authored-by: Shilei Tian <i at tianshilei.me>
Assisted-by: Claude Opus 5.5
DeltaFile
+6-3llvm/include/llvm/Transforms/IPO/Attributor.h
+6-31 files

LLVM/project 1387da2 — llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU gfx9_err_pos.s mtbuf.s

[AMDGPU][AsmParser] Require a comma between dfmt and nfmt

PR46403 says that the MTBUF syntax expects dfmt and nfmt to be
separated by a comma. Nothing required supporting the comma as
optional: dfmt and nfmt were always ordinary operands. They were
separate operands before 35484c9d5024, and the printer has always
printed them as 'dfmt:N, nfmt:M'.

Another step towards checks for correct use of commas between
operands.

Assisted-By: Claude
DeltaFile
+35-46llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+21-15llvm/test/MC/AMDGPU/mtbuf.s
+5-5llvm/test/MC/AMDGPU/gfx9_err_pos.s
+61-663 files

LLVM/project cfc0855 — libcxx/lib/abi arm64-apple-darwin.libcxxabi.v1.stable.noexceptions.nonew.abilist, llvm/lib/Target/Hexagon HexagonDepInstrInfo.td

Merge branch 'main' to pick up c01e243b1f72 (BPF test fix)

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2,968-0llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/is_fpclass.ll
+2,631-0libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.noexceptions.nonew.abilist
+2,305-0llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
+1,069-378llvm/test/CodeGen/AArch64/neon-rshrn.ll
+644-665llvm/test/CodeGen/AArch64/neon-dotreduce.ll
+594-664llvm/test/CodeGen/AMDGPU/splitkit-getsubrangeformask-phi-extend.ll
+10,211-1,7073,641 files not shown
+79,157-34,7163,647 files

LLVM/project 8c2e2cb — flang/test/Lower/OpenMP depend-iterator.f90, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[mlir][flang][OpenMP] Honor inclusive iterator bounds in translation (#240949)
DeltaFile
+137-13mlir/test/Target/LLVMIR/openmp-iterator.mlir
+25-25flang/test/Lower/OpenMP/depend-iterator.f90
+15-7mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+16-3mlir/test/Dialect/OpenMP/iterator-empty.mlir
+7-7mlir/test/Target/LLVMIR/openmp-iterator-wide.mlir
+6-6mlir/test/Target/LLVMIR/openmp-iterator-multi-block.mlir
+206-616 files not shown
+235-7112 files

LLVM/project 869eeb1 — offload/plugins-nextgen/amdgpu/src rtl.cpp, offload/unittests/OffloadAPI/queue olGetQueueInfo.cpp

[Offload][AMDGPU] Return the real user count from getUserCount (#241301)

This patch fixes the return type of AMDGPUQueueTy::getUserCount, which
currently returns bool: that collapses the count to 0 or 1, which upsets
the occupancy measurement in assignNextQueue.

A new test checks that work is queued appropriately across hardware
queues.

Assisted-By: Claude
DeltaFile
+37-0offload/unittests/OffloadAPI/queue/olGetQueueInfo.cpp
+1-1offload/plugins-nextgen/amdgpu/src/rtl.cpp
+38-12 files

LLVM/project f15a5e6 — clang/lib/Sema SemaTemplateInstantiateDecl.cpp SemaDeclCXX.cpp, clang/test/CodeGenCXX defaulted-function-fp-features.cpp

Record the info of functions defaulted outside class templates

A function defaulted outside its class template returned from
SetDeclDefaulted before it recorded the floating-point features in
effect at its definition. Its instantiation then had no info to reuse
and took the features in effect at its point of instantiation instead,
which also crashed codegen when those were strict but the function was
not.

Always record the info for such a pattern, so that its instantiation
reuses it. Also don't record it twice for a postfix operator defaulted
under non-default floating-point features: its info, including those
features, is recorded along with the lookup of its prefix operator.
DeltaFile
+36-1clang/test/CodeGenCXX/defaulted-function-fp-features.cpp
+22-11clang/lib/Sema/SemaDeclCXX.cpp
+25-6clang/test/SemaCXX/GH240351.cpp
+4-3clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+87-214 files

LLVM/project 97e0e67 — clang/lib/Sema DeclSpec.cpp, clang/test/Sema constexpr.c

[clang][C23] Delay thread storage recovery for constexpr diagnostics (#236758)

When a thread storage specifier conflicts with another storage class,
DeclSpec clears it before diagnosing a C23 constexpr conflict. The
second diagnostic then reports "unspecified" and loses the specifier's
source range.

For a block-scope declaration:

Before:
```
a:2:22: error: cannot combine with previous 'register' declaration specifier
    2 |   constexpr register _Thread_local int x = 1;
      |             ~~~~~~~~ ^
a:2:3: error: cannot combine with previous 'unspecified' declaration specifier
    2 |   constexpr register _Thread_local int x = 1;
      |   ^
2 errors generated.
```

    [13 lines not shown]
DeltaFile
+7-6clang/lib/Sema/DeclSpec.cpp
+5-0clang/test/Sema/constexpr.c
+12-62 files

LLVM/project f215131 — offload/plugins-nextgen/amdgpu/src rtl.cpp, offload/unittests/OffloadAPI/queue olGetQueueInfo.cpp

[Offload][AMDGPU] Return the real user count from getUserCount

This patch fixes the return type of AMDGPUQueueTy::getUserCount, which
currently returns bool: that collapses the count to 0 or 1, which upsets
the occupancy measurement in assignNextQueue.

A new test checks that work is queued appropriately across hardware
queues.

Assisted-By: Claude
DeltaFile
+37-0offload/unittests/OffloadAPI/queue/olGetQueueInfo.cpp
+1-1offload/plugins-nextgen/amdgpu/src/rtl.cpp
+38-12 files

LLVM/project f72bef2 — clang/lib/Sema SemaChecking.cpp

[clang][Sema][NFC] Consolidate checking for vector reduction builtins (#238663)

Share argument conversion, element type extraction, and result type
assignment across the single-argument reduction builtins. Preserve each
builtin's element type restrictions and diagnostics, and reuse
getVectorElementType for fixed-size and sizeless vectors.
DeltaFile
+28-50clang/lib/Sema/SemaChecking.cpp
+28-501 files

LLVM/project 7ff6739 — clang/docs OpenMPSupport.md, flang/docs OpenMPSupport.md

[NFC][OpenMP] Track Fortran OpenMP support status only in the Flang docs (#240917)

The Clang OpenMP support page had a "Fortran Status" column in its 5.2,
6.0 and 6.1 tables that was not kept up to date with the Flang page. For
OpenMP 5.2 alone it disagreed with flang/docs/OpenMPSupport.md on 13
rows (e.g. "if clause on teams", "otherwise clause" and "pure procedure
support" were listed as unclaimed for Fortran but are done in Flang).

Make the Flang page the only place Fortran status is recorded. The Clang
page now covers Clang (C/C++) and the LLVM OpenMP runtimes, whose status
applies to both languages.
DeltaFile
+159-148clang/docs/OpenMPSupport.md
+27-16flang/docs/OpenMPSupport.md
+186-1642 files

LLVM/project ce17508 — offload/plugins-nextgen/amdgpu/src rtl.cpp

[Offload][AMDGPU] Return the HSA queue as a queue's native handle (#241300)

Implement getNativeQueueHandle (introduced by #234186) for AMDGPU, so
that olGetQueueInfo can report OL_QUEUE_INFO_NATIVE_HANDLE for an AMDGPU
queue instead of UNSUPPORTED. The handle is the hsa_queue_t the queue's
stream is bound to; a stream is bound on first use, so querying binds
one if necessary. Several streams may share an HSA queue, in which case
their queues report the same handle.

Assisted-By: Claude
DeltaFile
+16-0offload/plugins-nextgen/amdgpu/src/rtl.cpp
+16-01 files

LLVM/project 822e874 — llvm/cmake/modules HandleLLVMOptions.cmake

Revert "[CMake] message type: FATAL_ERROR instead of ERROR (#174947)"

This reverts commit be10c9a691efcff0539770c3015948caacccba4a.
DeltaFile
+1-1llvm/cmake/modules/HandleLLVMOptions.cmake
+1-11 files

LLVM/project e19e779 — clang/docs ConcurrencySanitizer.md, clang/lib/Driver/ToolChains Linux.cpp

[csan] Add support for Hexagon (#241091)
DeltaFile
+18-0llvm/test/Instrumentation/ConcurrencySanitizer/32-bit.ll
+17-0clang/test/Driver/fsanitize.c
+9-4compiler-rt/lib/csan/offload/CMakeLists.txt
+2-1clang/docs/ConcurrencySanitizer.md
+1-1compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
+1-1clang/lib/Driver/ToolChains/Linux.cpp
+48-76 files

LLVM/project 9c7e7c7 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt symlinkat.h, libc/src/unistd/linux CMakeLists.txt symlinkat.cpp

[libc] Use a syscall wrapper for symlinkat (#241205)

This PR move symlinkat behind the centralized syscall wrappers,
following libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+34-0libc/src/__support/OSUtil/linux/syscall_wrappers/symlinkat.h
+11-9libc/src/unistd/linux/symlinkat.cpp
+16-2utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-4libc/src/unistd/linux/CMakeLists.txt
+78-155 files

LLVM/project 42fce66 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt symlink.h, libc/src/unistd/linux CMakeLists.txt symlink.cpp

[libc] Use a syscall wrapper for symlink (#241204)

This PR move symlink behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+40-0libc/src/__support/OSUtil/linux/syscall_wrappers/symlink.h
+11-16libc/src/unistd/linux/symlink.cpp
+17-2utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-4libc/src/unistd/linux/CMakeLists.txt
+86-225 files

LLVM/project 0159fe6 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt linkat.h, libc/src/unistd/linux CMakeLists.txt linkat.cpp

[libc] Use a syscall wrapper for linkat (#241203)

This PR move linkat behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+34-0libc/src/__support/OSUtil/linux/syscall_wrappers/linkat.h
+11-10libc/src/unistd/linux/linkat.cpp
+16-3utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-4libc/src/unistd/linux/CMakeLists.txt
+77-175 files

LLVM/project fab3a7d — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt getsid.h, libc/src/unistd/linux CMakeLists.txt getsid.cpp

[libc] Use a syscall wrapper for getsid (#241202)

This PR move getsid behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+34-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+34-0libc/src/__support/OSUtil/linux/syscall_wrappers/getsid.h
+11-7libc/src/unistd/linux/getsid.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-2libc/src/unistd/linux/CMakeLists.txt
+96-95 files