LLVM/project 5d44230llvm/docs AMDGPUUsage.rst, llvm/docs/AMDGPU DeveloperGuideline.rst

[NFC][AMDGPU][Doc] Add developer guideline

This guideline covers topics on top of existing LLVM guideline.
DeltaFile
+297-0llvm/docs/AMDGPU/DeveloperGuideline.rst
+1-0llvm/docs/AMDGPUUsage.rst
+298-02 files

LLVM/project 0b82418flang/lib/Optimizer/Transforms/CUDA CUFAddConstructor.cpp, flang/test/Fir/CUDA cuda-constructor-2.f90

[flang][cuda] Restore constructor for global only module (#194466)
DeltaFile
+36-11flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+29-0flang/test/Fir/CUDA/cuda-constructor-2.f90
+65-112 files

LLVM/project a9f550cllvm/lib/Target/PowerPC PPCISelLowering.cpp PPCInstr64Bit.td

[PowerPC] Simplify lowering for ldat intrinsics

This change defines 2 new output patterns, `PAIR8` and `EVEN8`,
and uses them to implement the lowering of the intrinsics
`int_ppc_amo_ldat` and `int_ppc_amo_ldat_cond` in TableGen.
As result, the generated instructions are much clearer, and the
C++ code is also simplified.
DeltaFile
+11-27llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+15-12llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+26-392 files

LLVM/project 6722bb7compiler-rt/lib/asan_abi asan_abi_tbd.txt

[asan_abi] Skip new __asan_get_report_* from ABI (#194463)

PR #181446 ("[asan] API for getting multiple pointer ranges") added five
new __asan_get_report_{dealloc,dest,first,second,src}_address entries to
compiler-rt/lib/asan/asan_interface.inc without updating
asan_abi_tbd.txt
or implementing them in compiler-rt/lib/asan_abi/asan_abi.cpp. This
broke
the AddressSanitizerABI-arm64-darwin ::
Darwin/llvm_interface_symbols.cpp
test, which diffs asan_interface.inc (minus asan_abi_tbd.txt) against
the
symbols actually exported by libclang_rt.asan_abi_osx.a.

List the new symbols alongside the existing __asan_get_report_* entries
so the stable-ABI test passes. The symbols remain unimplemented in the
stable ABI library; this change only reflects that they are
intentionally
not part of the stable ABI surface.

    [5 lines not shown]
DeltaFile
+5-0compiler-rt/lib/asan_abi/asan_abi_tbd.txt
+5-01 files

FreeBSD/src 54922e4usr.sbin/mixer/tests mixer_test.sh

mixer(8) tests: Remove tests for deprecated control values

Fixes:          a28bb575c89c ("mixer(8): Deprecate some unintuitive control values")
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
DeltaFile
+1-17usr.sbin/mixer/tests/mixer_test.sh
+1-171 files

LLVM/project e44ea65llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv fixed-vectors-sext-vp.ll fixed-vectors-zext-vp.ll

[RISCV] Remove codegen for vp_zext, vp_sext (#194295)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off 2 intrinsics from #179622. The vp_truncate combine needs
to be updated to keep the vaaddu patterns for now, but it will be
removed in an upcoming PR.
DeltaFile
+37-61llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sext-vp.ll
+37-60llvm/test/CodeGen/RISCV/rvv/fixed-vectors-zext-vp.ll
+26-53llvm/test/CodeGen/RISCV/rvv/vzext-vp.ll
+26-53llvm/test/CodeGen/RISCV/rvv/vsext-vp.ll
+6-50llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+12-20llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
+144-29712 files not shown
+188-35718 files

LLVM/project 822392dllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine/X86 extract-extract-oob.ll

[VectorCombine] reject out-of-bounds extract indexes in foldExtractExtract (#194381)

Fixes #194355

`VectorCombine::foldExtractExtract()` matches any constant-index
`extractelement` operands, but it never verifies that they are in range
for a fixed-width vector.
DeltaFile
+15-0llvm/test/Transforms/VectorCombine/X86/extract-extract-oob.ll
+7-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+22-02 files

LLVM/project 043e778lldb/source/Target Process.cpp Target.cpp

lldb] Fix two issues causing TestEvents.py flakiness (#194438)

This PR fixes two issues that contribute to `TestEvents.py` being flaky
in CI:

1. `ProcessEventData::DoOnRemoval` runs the full stop-handling logic
(like `ShouldStop` and `RunStopHooks`) every time an event is consumed
from any listener. When the primary listener consumes an event and then
the shadow listener consumes the same event, the logic runs twice. The
second execution can race with subsequent event processing. Fix this by
incrementing `m_update_state` after the first successful run so
secondary listeners skip the full logic.

2. Target::RunStopHooks updates `m_latest_stop_hook_id` (marking a stop
as "handled") before checking whether any threads have stop reasons. If
the check fails and hooks don't run, the stop ID is already consumed,
preventing hooks from ever running for that stop. Fix this by deferring
the update until we're certain we'll actually run hooks.
DeltaFile
+10-5lldb/source/Target/Process.cpp
+2-2lldb/source/Target/Target.cpp
+12-72 files

LLVM/project 3c7128bllvm/utils/gn/secondary/llvm/unittests/ADT BUILD.gn

[gn build] Port fe587c5ad92b (#194480)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
+1-01 files

LLVM/project 1106bd9llvm/utils/gn/secondary/clang/unittests/Tooling BUILD.gn

[gn build] Port ef18c253321f (#194479)
DeltaFile
+1-0llvm/utils/gn/secondary/clang/unittests/Tooling/BUILD.gn
+1-01 files

LLVM/project ccc0d54llvm/utils/gn/secondary/llvm/lib/ProfileData BUILD.gn

[gn build] Port 0eaa1f5884bf (#194478)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn
+1-01 files

LLVM/project 75bef3eclang/tools/clang-sycl-linker CMakeLists.txt

[clang-sycl-linker] Add FrontendOffloading dependency to clang-sycl-linker (#194471)

This PR fixes the build after
https://github.com/llvm/llvm-project/commit/b862554a70eeb9a8315f45406a7e13c771af1eb7

Fixes missing dependency in `clang-sycl-linker/CMakeLists.txt`
DeltaFile
+1-0clang/tools/clang-sycl-linker/CMakeLists.txt
+1-01 files

NetBSD/pkgsrc 0o3jJCwlang/python wheel.mk

   lang/python/wheel.mk: Clarify PY_RENAME_BINARIES

   Use "files" not "binaries" as this works with python scripts :-).

   Don't parenthesize ("in $PREFIX}/bin") because that's a critical
   definition, not a reminder.

   Suggest adding ALTERNATIVES for cases when the program would be run by
   humans expecting an unversioned name.
VersionDeltaFile
1.25+4-2lang/python/wheel.mk
+4-21 files

LLVM/project 8427cb7clang/test/CIR/CodeGen if.cpp cmp.cpp

[CIR] Fix failing tests after bool load change (#194468)

This fixes CIR tests that were failing as a result of the change in how
bool load values are truncated in
https://github.com/llvm/llvm-project/pull/193783
DeltaFile
+5-5clang/test/CIR/CodeGen/if.cpp
+4-4clang/test/CIR/CodeGen/cmp.cpp
+4-4clang/test/CIR/CodeGen/binop.cpp
+4-4clang/test/CIR/CodeGen/ternary-throw.cpp
+3-3clang/test/CIR/CodeGen/ternary.cpp
+2-2clang/test/CIR/CodeGen/complex.cpp
+22-221 files not shown
+23-237 files

LLVM/project 0eaa1f5llvm/include/llvm/ProfileData ETMTraceDecoder.h, llvm/lib/ProfileData ETMTraceDecoder.cpp

Reland "[llvm-profgen] Add support for ETM trace decoding" (#194465)

This relands commit e3bd61890e68303a33fdd33fbdd9abeda (#191584), which
was reverted in commit
ec9d7d18bdfe21c30c94c02f14f3613f7b69a17b (#194087) due to bot failures
on ppc64le and Windows.

This reland incorporates the following fixes:

1) Rename member variable InputFile to InputFilePath inside struct
InputFile to resolve MSVC shadow
conflicts.

2) Add arm-registered-target to ETM tests REQUIRES directive to prevent
failures on builders that do
not have the ARM target enabled.
DeltaFile
+251-0llvm/lib/ProfileData/ETMTraceDecoder.cpp
+71-36llvm/tools/llvm-profgen/llvm-profgen.cpp
+72-17llvm/tools/llvm-profgen/PerfReader.cpp
+81-0llvm/test/tools/llvm-profgen/etm-arch.test
+48-0llvm/test/tools/llvm-profgen/Inputs/etm-opencsd.yaml
+46-0llvm/include/llvm/ProfileData/ETMTraceDecoder.h
+569-538 files not shown
+672-7214 files

OpenBSD/src ovkS53qusr.sbin/rpki-client parser.c

   adjust style

   OK tb@
VersionDeltaFile
1.180+2-1usr.sbin/rpki-client/parser.c
+2-11 files

LLVM/project 6f2e1a1libc/test/src/sys/socket/linux sendmsg_recvmsg_test.cpp

[libc][test] Remove non-proxy header in sendmsg_recvmsg_test.cpp (#194467)

The header `include/llvm-libc-macros/linux/sys-socket-macros.h` should
be included via `hdr/sys_socket_macros.h` which proxies based on whether
LIBC_FULL_BUILD is enabled. Else we mix LLVM-libc internal headers and
system headers.
DeltaFile
+8-3libc/test/src/sys/socket/linux/sendmsg_recvmsg_test.cpp
+8-31 files

FreeBSD/src e6d112bpackages Makefile

packages: Fix clang conditional

Various src.conf options can cause us to build something that ends up
in the clang package, but MK_TOOLCHAIN is not one of them; copy the
proper conditional from lib/Makefile to decide if we need to build
the package.

This fixes the build when LLVM/clang is entirely disabled.

Fixes:  bb75b0d581f7 ("packages: Convert world to a subdir build")
MFC after:      2 weeks
Reviewed by:    emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56657
DeltaFile
+2-1packages/Makefile
+2-11 files

FreeBSD/ports 1793f6dx11/bitmap pkg-descr distinfo

x11/bitmap: Update to 1.1.2

Add WWW and TEST_TARGET.
Update pkg-descr.

https://lists.x.org/archives/xorg-announce/2026-January/003654.html

PR:             294770
Approved by:    x11 (arrowd)
Approved by:    osa (mentor)
DeltaFile
+8-2x11/bitmap/pkg-descr
+3-3x11/bitmap/distinfo
+3-2x11/bitmap/Makefile
+14-73 files

LLVM/project 5aa71adllvm/lib/Transforms/Scalar SROA.cpp, llvm/test/Transforms/SROA protected-field-pointer.ll

Revert "SROA: Recognize llvm.protected.field.ptr intrinsics."

This commit turns out to also not be needed after #186548; it now makes
a very small difference (~40 bytes) to Fleetbench binary size.

This reverts commit b0d340557841e0c3f72d19be89aebef2a8ce02e5.

Reviewers: fmayer, nikic

Pull Request: https://github.com/llvm/llvm-project/pull/194109
DeltaFile
+0-93llvm/test/Transforms/SROA/protected-field-pointer.ll
+5-78llvm/lib/Transforms/Scalar/SROA.cpp
+5-1712 files

LLVM/project 11f1a35lldb/examples/python lldbtk.py armv7_cortex_m_target_defintion.py

[lldb] Unify python shebangs (#187257)

As per PEP-0394[1], there is no real concensus over what binary names
Python has, specifically 'python' could be Python 3, Python 2, or not
exist.

However, everyone has a python3 interpreter and the scripts are all
written for Python 3. Unify the shebangs so that the ~50% of shebangs
that use python now use python3.

[1] https://peps.python.org/pep-0394/
DeltaFile
+1-1lldb/examples/python/lldbtk.py
+1-1lldb/examples/python/armv7_cortex_m_target_defintion.py
+1-1lldb/examples/python/bsd.py
+1-1lldb/examples/python/cmdtemplate.py
+1-1lldb/examples/python/delta.py
+1-1lldb/examples/python/disasm-stress-test.py
+6-635 files not shown
+41-4141 files

LLVM/project 0424f5ellvm/include/llvm/CodeGen/GlobalISel Utils.h, llvm/include/llvm/Target/GlobalISel Combine.td

[GIsel] Add constant-folding for more unary integer ops (#194265)

Generalize ConstantFoldCountOp to ConstantFoldUnaryIntOp including
G_ABS, G_BSWAP, G_BITREVERSE
DeltaFile
+400-0llvm/test/CodeGen/AArch64/GlobalISel/combine-constant-fold-unary-int.mir
+0-227llvm/test/CodeGen/AArch64/GlobalISel/combine-constant-fold-count.mir
+12-6llvm/lib/CodeGen/GlobalISel/Utils.cpp
+7-6llvm/include/llvm/Target/GlobalISel/Combine.td
+6-6llvm/include/llvm/CodeGen/GlobalISel/Utils.h
+6-3llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
+431-2483 files not shown
+442-2579 files

FreeBSD/ports a43dbf6misc/nanocoder pkg-plist distinfo, misc/nanocoder/files package-lock.json

misc/nanocoder: update 1.25.1 → 1.25.2
DeltaFile
+68-68misc/nanocoder/files/package-lock.json
+10-1misc/nanocoder/pkg-plist
+3-3misc/nanocoder/distinfo
+1-1misc/nanocoder/Makefile
+82-734 files

LLVM/project b862554clang/tools/clang-sycl-linker ClangSYCLLinker.cpp, libsycl/src/detail program_manager.cpp device_binary_structures.hpp

[Offload][libsycl][clang-sycl-linker] Simplify SYCL Offload wrapping (#193876)

Replace the __sycl_tgt_bin_desc/__sycl_tgt_device_image-based fat binary
registration with a simpler OffloadBinary-native approach:

- __sycl_register_lib/__sycl_unregister_lib now take (BinaryStart, Size)
instead of a __sycl_tgt_bin_desc pointer; __sycl_unregister_lib only
needs BinaryStart since the runtime looks up the binary by its start
address.
- OffloadWrapper's SYCL wrapping is significantly simplified: the
__tgt_bin_desc/__tgt_device_image structs and the descriptor
construction code are replaced by a single embedded OffloadBinary blob
passed directly to the register/unregister entry points.
- clang-sycl-linker generates a single OffloadBinary, which contains
multiple images.
- ProgramAndKernelManager::registerFatBin parses the blob via
OffloadBinary::create, keying MDeviceImageManagers by BinaryStart to
eliminate the reparse on unregister.
- DeviceImageManager owns std::unique_ptr<OffloadBinary> instead of

    [8 lines not shown]
DeltaFile
+41-360llvm/lib/Frontend/Offloading/OffloadWrapper.cpp
+55-72libsycl/src/detail/program_manager.cpp
+0-59libsycl/src/detail/device_binary_structures.hpp
+30-20libsycl/src/detail/program_manager.hpp
+39-0llvm/include/llvm/Frontend/Offloading/Utility.h
+22-17clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
+187-5284 files not shown
+229-55910 files

LLVM/project 1a805acllvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV/hlsl-intrinsics reversebits.ll

[HLSL] SPIRV Address after merge comments from #193068 (#194462)

This patch is addressing some comments that arose after #193068 was
merged.
DeltaFile
+11-13llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+12-0llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
+23-132 files

LLVM/project ae11842lld/MachO ConcatOutputSection.cpp ConcatOutputSection.h

move lambdas to private helpers
DeltaFile
+112-105lld/MachO/ConcatOutputSection.cpp
+20-2lld/MachO/ConcatOutputSection.h
+132-1072 files

LLVM/project 20a62a4clang/lib/CIR/CodeGen CIRGenModule.h CIRGenModule.cpp

[CIR] Eliminate SymbolTable::lookupSymbolIn hotspots (#193362)

mlir::SymbolTable::lookupSymbolIn is O(n) per lookup, so cumulative
symbol lookups during CIRGen are O(n^2) in the number of global symbols.
On template-heavy translation units this becomes a significant
compile-time hotspot.

Replace the SymbolTable lookup path with a per-CIRGenModule DenseMap
cache keyed by symbol name, giving O(1) lookups.

On a synthetic template-heavy stress test, end-to-end compile time on
`clang -fclangir -S -emit-llvm -O0` improves by ~11% on a 33K-LOC input
(5.86s -> 5.21s) and ~16% on a 67K-LOC input (16.09s -> 13.52s). The
super-linear growth of the win with input size confirms the O(n^2) ->
O(n) effect.

Similar to previous compile time fix, repro shape (scale records and
template instantiations into the hundreds/thousands to amplify):


    [7 lines not shown]
DeltaFile
+24-0clang/lib/CIR/CodeGen/CIRGenModule.h
+13-6clang/lib/CIR/CodeGen/CIRGenModule.cpp
+4-6clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+2-0clang/lib/CIR/CodeGen/CIRGenVTables.cpp
+2-0clang/lib/CIR/CodeGen/CIRGenDecl.cpp
+2-0clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+47-121 files not shown
+48-127 files

FreeBSD/src 036ff38cddl/lib/libzpool Makefile

libzpool: Set -Wno-error=typedef-redefinition for clang

In some versions of LLVM (at least 21), the <*intrin.h> headers contain
unguarded duplicate typedefs; this isn't permitted prior to C11, and
libzpool is built as C99.  FreeBSD's LLVM backported LLVM PR #153820
to fix this, but other versions of LLVM (e.g., upstream, or on Linux)
don't have the patch, so this breaks the build.

Add -Wno-error=typedef-redefinition to downgrade this from an error
to a warning.

MFC after:      2 weeks
Reviewed by:    dim, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56653
DeltaFile
+5-0cddl/lib/libzpool/Makefile
+5-01 files

LLVM/project 10fe2e3llvm/lib/Transforms/Vectorize VPlanAnalysis.cpp VPlanAnalysis.h

[VPlan] Pass TTI + CostKind to spillCost instead of CostCtx (NFC) (#194417)

Instead of passing CostContext, directly pass the needed TTI and
CostKind. This makes the function easier to re-use in other places,
without the need of constructing VPCostContext.

Split off from https://github.com/llvm/llvm-project/pull/194267 as
suggested.
DeltaFile
+8-6llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
+3-1llvm/lib/Transforms/Vectorize/VPlanAnalysis.h
+1-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+12-83 files

FreeBSD/src b866d05. Makefile.inc1

Makefile.inc1: Always use ${PKG_CMD}

Previously we had a mix of ${PKG_CMD} and bare 'pkg', which is
wrong, and breaks the build when 'pkg' isn't in the tools path,
e.g. when cross-building.

MFC after:      2 weeks
Reviewed by:    wosch, emaste
Sponsored by:   https://www.patreon.com/bsdivy
Differential Revision:  https://reviews.freebsd.org/D56655
DeltaFile
+4-4Makefile.inc1
+4-41 files