LLVM/project 34654fc — llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU optimize-compare-cselect-debug.mir

[AMDGPU] Ignore debug instructions in invertSCCUse scan budget (#229961)

`invertSCCUse` limits how many instructions it scans after an SCC
definition. The loop currently counts `DBG_VALUE`s, so enough debug
records can exhaust `ScanLimit` before the following instruction proves
SCC dead. This makes the peephole result depend on debug information and
leaves a redundant compare.

Use `instructionsWithoutDebug` so the budget counts ordinary
instructions. The MIR regression test places nine `DBG_VALUE`s inside
the scan window; it fails on unmodified `main` because `S_CMP_LG_U32`
remains and passes with this patch when the redundant compare is
removed.
DeltaFile
+64-0llvm/test/CodeGen/AMDGPU/optimize-compare-cselect-debug.mir
+2-2llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+66-22 files

LLVM/project 9f20fc9 — llvm/include/llvm/Plugins PassPlugin.h

[Plugins] Always export `llvmGetPassPluginInfo()` (#229801)

The function is always meant to be exported and is never imported
"directly" via implicit linking. Instead, this is always done via
`dlsym` / `GetProcAddress`.

In order for the symbol to be properly exported from a plugin dylib, it
must be defined as `__declspec(dllexport)` on Windows. In general,
plugin symbol declaration must be declared with `LLVM_ABI_EXPORT`, as
the documentation for that macro indicates.

This was tested in dylib and non-dylib configurations on both Windows
and macOS and confirmed to work in both configurations.

The effort to build LLVM as a dylib is tracked in #109483.
DeltaFile
+2-3llvm/include/llvm/Plugins/PassPlugin.h
+2-31 files

HardenedBSD/src dfda65f — share/man/man4 ipmi.4, stand/efi/loader main.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+25-24sys/dev/iwx/if_iwx.c
+33-1share/man/man4/ipmi.4
+18-0sys/dev/ipmi/ipmi.c
+8-2stand/efi/loader/main.c
+3-2sys/dev/iwx/if_iwxreg.h
+87-295 files

HardenedBSD/src d53572f — sys/kern kern_jaildesc.c

Merge remote-tracking branch 'rad/hardened/15-stable/main' into hardened/15-stable/pledge
DeltaFile
+2-0sys/kern/kern_jaildesc.c
+2-01 files

HardenedBSD/src 4176b70 — share/man/man4 ipmi.4, stand/efi/loader main.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+25-24sys/dev/iwx/if_iwx.c
+33-1share/man/man4/ipmi.4
+18-0sys/dev/ipmi/ipmi.c
+8-2stand/efi/loader/main.c
+3-2sys/dev/iwx/if_iwxreg.h
+87-295 files

HardenedBSD/src c7d9d4d — sys/kern kern_jaildesc.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+2-0sys/kern/kern_jaildesc.c
+2-01 files

HardenedBSD/ports 8a930ab — games/veloren-weekly Makefile.crates distinfo, games/veloren-weekly/files patch-cpal patch-gilrs

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+149-145games/veloren-weekly/distinfo
+0-169misc/gemini-cli/files/package-lock.json
+59-110games/veloren-weekly/files/patch-gilrs
+73-71games/veloren-weekly/Makefile.crates
+55-51misc/gemini-cli/pkg-plist
+0-58games/veloren-weekly/files/patch-cpal
+336-60441 files not shown
+693-68747 files

LLVM/project 928f895 — clang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp, clang/test/CIR/Transforms lib-opt.cir target-lowering.cir

[CIR] Register TargetLowering, LoweringPrepare and LibOpt in cir-opt (#229575)

Part of : https://github.com/llvm/llvm-project/issues/227917

Now that LoweringPrepare and LibOpt no longer take an ASTContext, all
three passes only read the module (triple, #cir.lowering_lang_options,
opt info), so they can run on .cir files directly. Register them in
cir-opt so they can be tested without going through CIRGen.

One nit is that LoweringPrepare asserted that the module has a triple,
assuming CIRGen always sets one. That no longer holds for hand-written
.cir, so I decided to emit a diagnostic/error and fail the pass instead.

These are the tests those transformations cover :
- lowering-prepare.cir: static-local guard lowering follows
  threadsafe_statics from #cir.lowering_lang_options.
- lowering-prepare-global-ctor.cir: a global with a ctor region keeps
its
  initial value through LoweringPrepare, including a lowered null member

    [8 lines not shown]
DeltaFile
+56-0clang/test/CIR/Transforms/lowering-prepare.cir
+36-0clang/test/CIR/Transforms/lowering-prepare-global-ctor.cir
+20-0clang/test/CIR/Transforms/target-lowering.cir
+14-0clang/test/CIR/Transforms/lib-opt.cir
+12-0clang/tools/cir-opt/cir-opt.cpp
+5-2clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+143-21 files not shown
+148-27 files

LLVM/project b22be34 — clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/test/CIR/CodeGen global-temp-dtor.cpp global-init.cpp

[CIR] Print the initial value of globals with a ctor region (#229565)

Globals were not printing their initializer when a ctor region existed
for the op. So round tripping the serialized op before running
LoweringPrepareo on a .cir module was throwing this error from the
verifier:

```sh
error: 'cir.global' op symbol declaration cannot have public visibility
```

The global lost its initial value on the round trip. Once
LoweringPrepare moved the ctor region out, had no initial value and no
regions, so it looked like a public declaration.


The initial value is now printed before the ctor region, the same way
the dtor region already works:
```mlir

    [7 lines not shown]
DeltaFile
+22-21clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+19-4clang/test/CIR/IR/global-init.cir
+16-1clang/test/CIR/IR/invalid-global.cir
+5-5clang/test/CIR/CodeGenCXX/init-priority-attr.cpp
+5-5clang/test/CIR/CodeGen/global-temp-dtor.cpp
+5-5clang/test/CIR/CodeGen/global-init.cpp
+72-4115 files not shown
+101-7021 files

NetBSD/pkgsrc ayd7qfw — doc CHANGES-2026

   Updated devel/cargo-nextest, lang/nodejs
VersionDeltaFile
1.6793+3-1doc/CHANGES-2026
+3-11 files

NetBSD/pkgsrc itcB7RE — lang/nodejs Makefile distinfo, lang/nodejs/patches patch-deps_histogram_src_hdr__histogram.c patch-common.gypi

   nodejs: updated to 26.11.1

   26.11.1 (Current)

   - Revert "build: toggle doc-kit verbosity based on V" (Antoine du Hamel)
   - Revert "build, doc: move to redesign" (Antoine du Hamel)
   - Revert "tools: bump the doc group in /tools/doc with 4 updates" (Antoine du Hamel)
VersionDeltaFile
1.15+7-7lang/nodejs/patches/patch-common.gypi
1.333+5-6lang/nodejs/distinfo
1.362+2-2lang/nodejs/Makefile
1.2+1-1lang/nodejs/patches/patch-deps_histogram_src_hdr__histogram.c
+15-164 files

LLVM/project 7ddb674 — flang/test/Transforms licm-acc-atomic.fir, mlir/include/mlir/Dialect/OpenACC OpenACCOps.td

[mlir][acc] Declare the memory effects of acc.atomic.read (#228899)

The operation read `x` and wrote `v` but declared no memory effects at
all, so every memory analysis had to treat both locations as unknown and
stay maximally conservative. In particular it could not be seen to
overwrite `v`.

Declare the effects per operand so the read on `x` and the write on `v`
are visible.
DeltaFile
+95-0flang/test/Transforms/licm-acc-atomic.fir
+42-0mlir/test/Dialect/OpenACC/side-effects.mlir
+12-2mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
+149-23 files

LLVM/project c6648ca — clang/lib/CodeGen CGHLSLBuiltins.cpp, clang/lib/Headers/hlsl hlsl_resources.h

[HLSL] Add Barrier builtin (#228277)

This PR adds the Barrier builtin for HLSL for shader model 6.8, only
available for the DirectX backend.

Fixes: https://github.com/llvm/llvm-project/issues/99234
Assisted by: Github Copilot

---------

Copilot-Session: 2a688632-6a2b-4e02-b8fd-c68b2b1bbd64
DeltaFile
+222-22clang/lib/Sema/SemaHLSL.cpp
+83-0clang/lib/CodeGen/CGHLSLBuiltins.cpp
+57-0clang/test/CodeGenHLSL/builtins/Barrier.hlsl
+56-0clang/test/SemaHLSL/BuiltIns/Barrier-context-errors.hlsl
+42-0clang/lib/Headers/hlsl/hlsl_resources.h
+32-0llvm/test/CodeGen/DirectX/barrier_by_memory.ll
+492-2214 files not shown
+706-2220 files

LLVM/project d78ca65 — clang/lib/CodeGen CGHLSLRuntime.h, clang/test/CodeGenHLSL/builtins wave_get_lane_count.hlsl

Implement WaveGetLaneCount SPIRV lowering (#227160)

This PR implements the SPIRV lowering for WaveGetLaneCount.

Fixes https://github.com/llvm/llvm-project/issues/99159
Assisted by: Github Copilot
DeltaFile
+12-8clang/lib/CodeGen/CGHLSLRuntime.h
+5-11clang/test/CodeGenHLSL/builtins/wave_get_lane_count.hlsl
+0-2llvm/include/llvm/IR/IntrinsicsSPIRV.td
+17-213 files

LLVM/project 16f4b89 — llvm/include/llvm/IR IntrinsicsAMDGPU.td, llvm/test/CodeGen/AMDGPU llvm.amdgcn.s.barrier.unsupported-subtarget.ll

[AMDGPU] Guard named barrier intrinsics with gfx12-insts (#227607)

Fixes LCOMPILER-2875
Test assisted by: Opus 5
DeltaFile
+56-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.unsupported-subtarget.ll
+8-0llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+64-02 files

LLVM/project 3185ef2 — llvm/lib/Target/RISCV RISCVTargetMachine.cpp RISCVSubtarget.cpp, llvm/test/CodeGen/RISCV load-store-pair.ll imm.ll

[RISCV] Prefix option names with riscv-, turn disable- to positive options (#228922)

Rename the RISCV CodeGen options so that they start with riscv-, and
turn the -disable-* options that default to false into positive options
that default to true.

Preparatory for migrating to LibraryOptions.

Aided by Opus 5.5
DeltaFile
+9-9llvm/test/CodeGen/RISCV/imm.ll
+8-8llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
+7-8llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
+7-7llvm/lib/Target/RISCV/RISCVSubtarget.cpp
+5-5llvm/test/CodeGen/RISCV/load-store-pair.ll
+4-4llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+40-418 files not shown
+52-5414 files

LLVM/project 046f63b — llvm/lib/Target/RISCV RISCVOptWInstrs.cpp RISCVISelDAGToDAG.cpp, llvm/test/CodeGen/RISCV opt-w-instrs.mir opt-w-instrs-bext.ll

[RISCV] Remove redundant sign extensions from BEXT indices (#228398)

`RISCVOptWInstrs` can remove redundant `sext.w` operations when all
users only depend on bits preserved by the original 32-bit value, but
does not account for the limited width of the `BEXT` index operand.

Extend `hasAllNBitUsers` to recognize that the `BEXT` index operand only
requires `log2(XLEN)` low bits. On RV64, `BEXT` effectively uses `index
& 63`, so `sext.w` does not affect the selected bit when its result is
used only as the index. The rule is intentionally limited to the index
operand, as the data operand may require the full XLEN-wide value.

Tests cover index sign-extension elimination, preservation of the data
operand, shared data/index uses, additional full-width users,
propagation through `COPY` and `PHI`, the six-bit boundary and five-bit
negative case, as well as RV32 behavior. Focused and nearby RISC-V tests
pass with MachineVerifier enabled.

AI tool usage: OpenAI Codex assisted with investigation, implementation,
and validation. I reviewed and understand the implementation, tests, and
validation results and take responsibility for the contribution.
DeltaFile
+53-0llvm/test/CodeGen/RISCV/opt-w-instrs-bext.ll
+23-0llvm/test/CodeGen/RISCV/opt-w-instrs.mir
+2-1llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
+2-1llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+80-24 files

LLVM/project c85c94c — llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp, llvm/test/Instrumentation/MemorySanitizer addrspacecast.ll

[msan] Propagate shadow through addrspacecast. (#229860)

MemorySanitizer does not currently have a visitor for an `addrspacecast`
instruction. This means that the sanitizer inserts a check of the shadow
at the point of the `addrspace` instruction.

Since, on CPU builds, `addrspacecast` is a NOP, the compiler is free to
hoist it out of conditional code. For example, this bug was noticed
because a conditional access of the `addrspace` casted pointer in an
`std::variant` was turned into a `select` instruction by the compiler
and the cast itself was done before the select. MSAN inserts a shadow
check here and reports a false-posiitive "use-of-uninitialized value".

This change implements shadow tracking for `addrspacecasts` (like the
other casts) and propagates the operand's shadow to the resulting SSA
value instead of checking it at the point of the cast itself.

Tests have been added that show that tracking value propagates across
the cast.
DeltaFile
+118-0llvm/test/Instrumentation/MemorySanitizer/addrspacecast.ll
+7-0llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+125-02 files

LLVM/project af33a76 — clang/docs ReleaseNotes.md, llvm/lib/Support UnicodeNameToCodepoint.cpp UnicodeNameToCodepointGenerated.cpp

[Clang] Update Codepoint names to Unicode 18. (#229080)

There were changes since the beta...
https://www.unicode.org/L2/L2026/26151.htm

This is technically a breaking change,
not that it's likely to affect anyone.
DeltaFile
+23,347-23,371llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+13-7llvm/unittests/Support/UnicodeTest.cpp
+7-5llvm/lib/Support/UnicodeNameToCodepoint.cpp
+2-0clang/docs/ReleaseNotes.md
+23,369-23,3834 files

LLVM/project 34b1246 — clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, mlir/include/mlir/ABI ABIRewriteContext.h

[mlir][ABI] Add indirect address space to ArgClassification
DeltaFile
+33-0mlir/unittests/ABI/TestTargetTest.cpp
+14-4mlir/lib/ABI/Targets/Test/TestTarget.cpp
+9-6mlir/include/mlir/ABI/Targets/Test/TestTarget.h
+10-2mlir/include/mlir/ABI/ABIRewriteContext.h
+8-0mlir/unittests/ABI/ABIRewriteContextTest.cpp
+2-1clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+76-136 files

LLVM/project 5149037 — clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering coerce-alloca-addrspace.cir

[CIR] Use alloca address space for CallConvLowering temporaries (#229792)

Summary:
- `call-conv-lowering` coercion and flattening temporaries were always
created in default AS which is invalid for targets with non zero alloca
AS.
- This PR creates these allocas in data layout AS. 
- Added test to check callee, call-site and return coercion, the
flattening slot and Expand member pointers.

Assisted by : claude opus 5.5
DeltaFile
+128-0clang/test/CIR/Transforms/abi-lowering/coerce-alloca-addrspace.cir
+24-7clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+152-72 files

NetBSD/pkgsrc mypkGDg — devel/cargo-nextest Makefile cargo-depends.mk

   cargo-nextest: updated to 0.9.148

   0.9.148

   Changed

   For setup scripts, slow-timeout no longer accepts on-timeout = "pass", and nextest now reports a configuration error if it is specified. A setup script that times out always fails the run. Previously, this setting was accepted but handled inconsistently: the timed-out script was counted as a failure, but the run was not cancelled.
   Internal dependency updates: guppy updated to 0.19.1, and target-spec updated to 3.7.0, updating built-in targets to Rust 1.98.

   Fixed

   Stress runs now exit with a non-zero code if any iteration failed. Previously, with fail-fast disabled, the exit code reflected only the last iteration, so a stress run with failures in earlier iterations exited with code 0 if the last iteration passed.

   Stress runs now always run at least one iteration. Previously, --stress-duration with a very short duration (such as 1ns) could finish without running any tests.

   Runs stopped by immediate fail-fast (--max-fail N:immediate) are now treated as failed rather than cancelled. Previously, in stress runs, the summary read 0 passed; cancelled due to test failure and the failing iteration was not counted as failed.

   When the global timeout fires with immediate fail-fast enabled, nextest now reports the global timeout as the reason the run was cancelled. Previously, the tests terminated by the timeout counted as failures, so nextest printed a second Cancelling due to test failure line and reported a test failure as the reason.


    [11 lines not shown]
VersionDeltaFile
1.26+52-58devel/cargo-nextest/distinfo
1.26+16-18devel/cargo-nextest/cargo-depends.mk
1.30+2-2devel/cargo-nextest/Makefile
+70-783 files

LLVM/project 6a5b8dc — flang/include/flang/Optimizer/Dialect/CUF/Attributes CUFAttr.td, flang/lib/Optimizer/Dialect/CUF/Attributes CUFAttr.cpp

[flang][cuda] Add cuf.launch_config attribute recording a kernel directive's launch configuration (#229980)

Add a `cuf.launch_config` attribute to the CUF dialect, together with a
`getLaunchConfigAttrName()` helper for the attribute name.

The attribute records how a `!$cuf kernel do` directive spelled its
launch configuration: the number of dimensions the directive names, and
each grid dimension as written. A grid dimension left to the compiler is
spelled `*`, a constant by its value, and a variable by its name.

```mlir
#cuf.launch_config<dims = 2 : i64, grid = ["*", "*"]>
```
DeltaFile
+23-0flang/include/flang/Optimizer/Dialect/CUF/Attributes/CUFAttr.td
+21-0flang/test/Fir/CUDA/cuda-launch-config-attr.mlir
+1-1flang/lib/Optimizer/Dialect/CUF/Attributes/CUFAttr.cpp
+45-13 files

LLVM/project cbbf5f9 — llvm/lib/Target/AMDGPU SIShrinkInstructions.cpp

Move SCC dead check to the beginning of 'if' block
DeltaFile
+3-6llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
+3-61 files

LLVM/project aa98fd4 — llvm/test/CodeGen/AMDGPU shrink-disjoint-or-scc.mir shrink-insts-scalar-bit-ops.mir

Merge the cases to an existing test file
DeltaFile
+0-35llvm/test/CodeGen/AMDGPU/shrink-disjoint-or-scc.mir
+35-0llvm/test/CodeGen/AMDGPU/shrink-insts-scalar-bit-ops.mir
+35-352 files

LLVM/project 52acb17 — llvm/lib/Target/AMDGPU SIShrinkInstructions.cpp, llvm/test/CodeGen/AMDGPU s_or_b32_transformation.ll shrink-disjoint-or-scc.mir

Address review feedback:
1. Use allImplicitDefsAreDead() helper to check whether SCC is dead
2. Simplify .ll test case
3. Add a new .mir test case
DeltaFile
+35-0llvm/test/CodeGen/AMDGPU/shrink-disjoint-or-scc.mir
+6-8llvm/test/CodeGen/AMDGPU/s_or_b32_transformation.ll
+1-2llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
+42-103 files

LLVM/project 1c17477 — llvm/lib/Target/AMDGPU SIShrinkInstructions.cpp, llvm/test/CodeGen/AMDGPU s_or_b32_transformation.ll

[AMDGPU] Preserve live SCC when shrinking disjoint S_OR_B32
DeltaFile
+6-0llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
+2-1llvm/test/CodeGen/AMDGPU/s_or_b32_transformation.ll
+8-12 files

LLVM/project 2eb4cf8 — llvm/test/CodeGen/AMDGPU s_or_b32_transformation.ll

Precommit test case for s_or incorrectly transformed to s_addk when SCC is live
DeltaFile
+28-0llvm/test/CodeGen/AMDGPU/s_or_b32_transformation.ll
+28-01 files

LLVM/project 785f841 — bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[BOLT] Match mmap events by build id (#229596)

Profiling on a host running two versions of the target binary with `perf
-a` might result in a profile containing mmap events from the desired
target and the second copy of that binary. In this case, perf2bolt will
attribute samples from both processes to the target binary. Match by
build id to filter samples.

Co-authored-by: Alexey Moksyakov <moksyakov.alexey at huawei.com>
DeltaFile
+79-0bolt/unittests/Profile/DataAggregator.cpp
+40-23bolt/lib/Profile/DataAggregator.cpp
+4-2bolt/include/bolt/Profile/DataAggregator.h
+123-253 files

LLVM/project e1cf700 — flang/lib/Semantics check-cuda.cpp, flang/test/Semantics/CUDA cuf-hostdevice-inherited-spec.cuf cuf-hostdevice-generic-diagnostics.cuf

[flang][cuda][semantics] Reject unguarded host-only and device-only calls in CUDA HOST,DEVICE procedures (#228176)

Previously, semantic checking allowed host-only and device-only calls
throughout a HOST,DEVICE procedure. This change requires unguarded
callees to support both its host and device versions.

A condition that checks the intrinsic ON_DEVICE permits host-only and
device-only calls in its guarded arms. The allowance includes one-line
IF statements, nested branches, and USE aliases. In an IF/ELSE IF chain,
a guard also applies to subsequent ELSE IF and ELSE arms. Guards
established inside an arm remain local to that arm.

When an ON_DEVICE arm, or its associated plain ELSE arm, contains an
unconditional RETURN, the allowance extends to the continuation after
the IF. Unconditional BLOCK constructs propagate these guards. A RETURN
in an unrelated IF/ELSE IF arm does not establish a continuation guard.
Unrelated branches restore their incoming checking context while
retaining an enclosing guard.


    [37 lines not shown]
DeltaFile
+291-100flang/lib/Semantics/check-cuda.cpp
+371-0flang/test/Semantics/CUDA/cuf-hostdevice-return-guard.cuf
+347-0flang/test/Semantics/CUDA/cuf-hostdevice-expression-context.cuf
+335-0flang/test/Semantics/CUDA/cuf-hostdevice-call-context.cuf
+162-0flang/test/Semantics/CUDA/cuf-hostdevice-generic-diagnostics.cuf
+139-0flang/test/Semantics/CUDA/cuf-hostdevice-inherited-spec.cuf
+1,645-1008 files not shown
+1,994-15314 files