LLVM/project 2c59a93llvm/test/CodeGen/AMDGPU asyncmark-gfx12plus.ll memintrinsic-unroll.ll, llvm/test/Transforms/SeparateConstOffsetFromGEP index-insertion-point-terminator-def.ll

[SeparateConstOffsetFromGEP] Rebuild GEP indices at their definition point (#223546)

When a constant offset is split out of a GEP index, the rebuilt index
replaces the original one. Rebuilding the index immediately before the
GEP amounts to sinking the index computation, increasing live ranges and
register pressure. This change attempts to rebuild the index at the
definition point of the original index instead. The same insertion point
is used for the `idxprom` cast created by
`canonicalizeArrayIndicesToIndexSize` too.
DeltaFile
+80-80llvm/test/CodeGen/AMDGPU/memmove-var-size.ll
+151-0llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/index-insertion-point.ll
+57-57llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
+109-0llvm/test/Transforms/SeparateConstOffsetFromGEP/index-insertion-point-terminator-def.ll
+39-39llvm/test/CodeGen/AMDGPU/asyncmark-gfx12plus.ll
+16-16llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/xor-decompose.ll
+452-1927 files not shown
+492-22313 files

LLVM/project a11b560clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Verify cir.ptr_mask's mask width instead of resizing it

A mismatch is a producer bug, so reject it rather than convert it.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+35-65clang/test/CIR/Lowering/ptr-mask.cir
+23-0clang/test/CIR/IR/invalid-ptr-mask.cir
+20-0clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+2-13clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+5-5clang/test/CIR/IR/ptr-mask.cir
+3-4clang/include/clang/CIR/Dialect/IR/CIROps.td
+88-876 files

LLVM/project 44286f0lld/COFF ICF.cpp

[lld][COFF] Refactor ICF section equality checks, NFC (#206562)

In the context of #205456 , this seemed like a reasonable refactoring.
The template specialization might be overkill, but I figured it would
ensure there was no performance regression.
DeltaFile
+47-64lld/COFF/ICF.cpp
+47-641 files

OpenBSD/src KZOfZLysys/kern subr_suspend.c

   Previous commit broke machdep.hibernatedelay.  Fix this by recognizing
   that we shouldn't overwrite the sleep_mode global when we jump to the
   top label.

   ok mlarkin@, hshoexer@
VersionDeltaFile
1.24+10-5sys/kern/subr_suspend.c
+10-51 files

OpenZFS/src 8e3e47ctests/zfs-tests/include libtest.shlib

ZTS: don't mistake a compiled-in kmemleak for a running one

kmemleak_late_init() creates /sys/kernel/debug/kmemleak before it checks
whether the detector came up, so on a kernel built
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF and booted without kmemleak=on the
file is there and kmemleak is not.  zfs_get_009_pos then skips, and the
two send_realloc tests quietly shrink their workload, on kernels
carrying none of the overhead those concessions are for.

Ask /proc/slabinfo instead: kmemleak_init() does not create the
kmemleak_object cache when it bails out, and SLAB_NOLEAKTRACE keeps that
cache from being merged away under another name.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Alexander Moch <mail at alexmoch.com>
Closes #19123
DeltaFile
+6-1tests/zfs-tests/include/libtest.shlib
+6-11 files

FreeBSD/ports 1885886misc/crush Makefile distinfo, misc/crush/files extra-patch-disable-command-blocking

misc/crush: Update to 0.95.0

Changelog: https://github.com/charmbracelet/crush/releases/tag/v0.95.0

Reported by:    GitHub (watch releases)
DeltaFile
+5-5misc/crush/distinfo
+2-2misc/crush/files/extra-patch-disable-command-blocking
+1-1misc/crush/Makefile
+8-83 files

LLVM/project 1ad9806llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/Shared BUILD.gn, llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc BUILD.gn

[gn build] Port 4aeec5992e48 (#224161)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/Shared/BUILD.gn
+2-02 files

LLVM/project 3947787lldb/include/lldb/Target StackFrameRecognizer.h, lldb/source/Commands CommandObjectFrame.cpp

Change string type of StackFrameRecognizer module names (#222810)

The majority of these come from FileSpec filenames (which are no longer
ConstStrings). Instead of putting them into the StringPool, the
StackFrameRecognizerManager can just hold onto the name in the
RegisteredEntry.
DeltaFile
+10-12lldb/source/Target/StackFrameRecognizer.cpp
+2-2lldb/source/Plugins/SystemRuntime/MacOSX/AbortWithPayloadFrameRecognizer.cpp
+2-2lldb/include/lldb/Target/StackFrameRecognizer.h
+1-2lldb/source/Commands/CommandObjectFrame.cpp
+1-1lldb/source/Target/AssertFrameRecognizer.cpp
+1-1lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
+17-201 files not shown
+18-217 files

OpenBSD/src Uu4NOY5regress/libexec/ld.so/subst/prog3 Makefile

   Fix libaa directory creation and copy
VersionDeltaFile
1.2+4-4regress/libexec/ld.so/subst/prog3/Makefile
+4-41 files

LLVM/project 4c9a33allvm/include/llvm/CodeGen TargetInstrInfo.h, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[WinEH] Only emit the async-EH nop after EH_LABEL on x86 (#219275)

Under `-fasync-exceptions`, `AsmPrinter::emitFunctionBody()` emits a nop
after an `EH_LABEL` whose next instruction can fault, so that the
faulting instruction opening an EH region does not share an address with
the return address of the call before it.

`EH_LABEL` is a meta-instruction and reports a size of zero, so that nop
is invisible to `getInstSizeInBytes()` and to everything that sums it.
On AArch64 that undercounts block offsets, `AArch64CompressJumpTables`
picks a one-byte jump table entry that does not fit, and the assembler
rejects it with `value evaluated as 258 is out of range`. That is how
this was found, building OpenCV's bundled protobuf for
`aarch64-pc-windows-msvc` with clang-cl `/EHa`. `BranchRelaxation` sums
the same sizes and has the same hole.

Only x86 needs the padding. On Arm64 the unwinder already backs the PC
up over a call when it knows there was one, which is exactly the case
the nop protects against, So gate the nop on x86 triples. That also

    [9 lines not shown]
DeltaFile
+41-0llvm/test/CodeGen/WinEH/wineh-eha-nop.ll
+0-34llvm/test/CodeGen/AArch64/wineh-async-eh-pad-instr-size.ll
+4-2llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+0-3llvm/include/llvm/CodeGen/TargetInstrInfo.h
+45-394 files

OpenBSD/src bESYQjZlib/libcrypto/ec ecp_hp_methods.c

   libcrypto: rename ec hp methods to include _hp_

   The existence of two static functions with the same name, such as
   ec_point_at_infinity() breaks my workflow strongly depending on
   ctags. Rename the new ones to disambiguate jump targets.

   ok jsing
VersionDeltaFile
1.6+45-45lib/libcrypto/ec/ecp_hp_methods.c
+45-451 files

LLVM/project a510f0emlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

Update comment
DeltaFile
+2-2mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+2-21 files

LLVM/project 3be2fabmlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp, mlir/test/Dialect/LLVMIR inlining-alias-scopes.mlir

[mlir][LLVM] Use a disjoint scope domain when inlining noalias

This matches recent changes to the LLVM inliner.

AI disclosure: Claude wrote the code, I wrote the commit message and
have done initial review.
DeltaFile
+28-25mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+10-18mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir
+38-432 files

LLVM/project 98f40a3mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

Remove pointless comment
DeltaFile
+0-2mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+0-21 files

LLVM/project daf1953mlir/test/Dialect/LLVMIR inlining-alias-scopes.mlir

Test that the inliner keeps the flag when it clones a domain

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+35-0mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir
+35-01 files

LLVM/project b6a4957mlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td, mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

[mlir][LLVM] Add disjointScopes to AliasScopeDomainAttr

This also updates the MLIR-side inliner to clone disjoint domains
while cloning alias scopes, matching changes to LLVM.

AI disclosure: Claude wrote the code, I wrote the commit message and
looked at the code.
DeltaFile
+25-0mlir/test/Target/LLVMIR/Import/metadata-alias-scopes.ll
+23-0mlir/test/Target/LLVMIR/attribute-alias-scopes.mlir
+17-2mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+4-2mlir/lib/Target/LLVMIR/ModuleImport.cpp
+4-1mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+2-2mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+75-76 files

LLVM/project 06f61f1llvm/lib/Target/AMDGPU AMDGPULowerModuleLDSPass.cpp, llvm/test/CodeGen/AMDGPU lower-lds-struct-aa-memcpy.ll remove-no-kernel-id-attribute.ll

[AMDGPU] Use a disjoint scope domain for merged LDS structs

When lowering LDS values, all the values are mutually disjoint, so we
can use the newly-added disjoint scopes feature to simplify the IR.

AI disclosure: Claude wrote this and I reviewed it and wrote the
 commit message
DeltaFile
+16-51llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+35-10llvm/test/CodeGen/AMDGPU/lower-module-lds-precise-allocate-to-module-struct.ll
+15-18llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa.ll
+11-13llvm/test/CodeGen/AMDGPU/lower-module-lds-via-hybrid.ll
+8-12llvm/test/CodeGen/AMDGPU/remove-no-kernel-id-attribute.ll
+9-10llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-memcpy.ll
+94-1146 files not shown
+140-16012 files

LLVM/project cd75ebellvm/lib/Target/AMDGPU AMDGPULowerKernelArguments.cpp, llvm/test/CodeGen/AMDGPU lower-kernargs.ll si-split-load-store-alias-info.ll

[AMDGPU] Use a disjoint scope domain for noalias kernel arguments

All noalias arguments of a kernel are disjoint with each other, so we
can use a disjoint scope to save on metadata construction.

AI disclosure: Claude wrote this, I looked at it and wrote this
message.
DeltaFile
+53-64llvm/test/CodeGen/AMDGPU/lower-noalias-kernargs.ll
+20-13llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
+11-11llvm/test/CodeGen/AMDGPU/lower-kernel-arguments-noalias-call-no-ptr-args.ll
+8-8llvm/test/CodeGen/AMDGPU/si-split-load-store-alias-info.ll
+4-4llvm/test/CodeGen/AMDGPU/lower-kernargs.ll
+96-1005 files

LLVM/project 302a80allvm/test/Transforms/Inline noalias2.ll

Test a callee that has both noalias arguments and its own scopes

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+51-0llvm/test/Transforms/Inline/noalias2.ll
+51-01 files

LLVM/project 13ab15fclang/test/CodeGen arm-v8.2a-neon-intrinsics-generic.c arm_neon_intrinsics.c, llvm/lib/Transforms/Utils InlineFunction.cpp

[Inliner] Use a disjoint scope domain for noalias arguments

InlineFunction creates alias.scope/noalias metadata to represent the
set of `noalias` arguments to a function. We don't need the `!noalias`
now that we have the ability to use disjoint scopes, saving us IR size
and metadata bloat.

TODO move these to a previous commit.
Also changes InstCombine to not drop the experimental.noalias.scope.decl
for disjoint scopes even if they're not mentioned in a `!noalias`, but
do still delete them if they're not used.
DeltaFile
+324-324clang/test/CodeGen/arm_neon_intrinsics.c
+72-72clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
+35-30llvm/lib/Transforms/Utils/InlineFunction.cpp
+13-14llvm/test/Transforms/Inline/noalias-calls2.ll
+12-12llvm/test/Transforms/Inline/noalias2.ll
+11-11llvm/test/Transforms/PhaseOrdering/pr39282.ll
+467-4639 files not shown
+487-48315 files

LLVM/project 84ce080llvm/test/Transforms/LICM scalar-promote-aa-tags.ll

Update tests introduced recently
DeltaFile
+2-2llvm/test/Transforms/LICM/scalar-promote-aa-tags.ll
+2-21 files

LLVM/project e363f15llvm/test/Analysis/ScopedNoAliasAA disjoint-domains.ll, llvm/test/CodeGen/SystemZ/Large branch-01.ll

Update tests for rebase
DeltaFile
+6-6llvm/test/Analysis/ScopedNoAliasAA/disjoint-domains.ll
+3-3llvm/test/CodeGen/SystemZ/Large/branch-01.ll
+2-2llvm/test/Transforms/ScalarizeMaskedMemIntrin/X86/metadata.ll
+1-1mlir/test/Target/LLVMIR/masked-intrinsic-metadata.mlir
+1-1mlir/test/Target/LLVMIR/Import/masked-intrinsic-metadata.ll
+1-1llvm/test/Transforms/LoopVectorize/VPlan/cse-loads.ll
+14-146 files

LLVM/project 0fc28dallvm/docs LangRef.md

Update docs
DeltaFile
+7-10llvm/docs/LangRef.md
+7-101 files

LLVM/project e5de866llvm/docs LangRef.md

Add a warning about string names on disjoint
DeltaFile
+4-0llvm/docs/LangRef.md
+4-01 files

LLVM/project 61b5976llvm/docs LangRef.md, llvm/include/llvm/Analysis ScopedNoAliasAA.h

Review feedback
DeltaFile
+14-14llvm/lib/Analysis/ScopedNoAliasAA.cpp
+12-5llvm/docs/LangRef.md
+2-1llvm/include/llvm/Analysis/ScopedNoAliasAA.h
+28-203 files

LLVM/project 6ecb394clang/test/CodeGen arm_neon_intrinsics.c arm-v8.2a-neon-intrinsics-generic.c, llvm/lib/Bitcode/Reader MetadataLoader.cpp

[IR] Add alias scope domains with disjoint scopes

See RFC at
https://discourse.llvm.org/t/rfc-disjoint-scope-alias-scope-noalias-domains/91537

This commit adds support for declaring an alias scope domain disjoint.
Disjoint domains are ones where each scope is implicitly `!noalias`
with each other scope in the domain. This is represented by adding an
`i1` into the scope's domain as the second argument, with `i1 true`
representing disjoint scopes and `i1 false` representing the old
non-disjoint behavior. AutoUpgrade mechanisms have been added to add
in the missing `i1 false` to existing metadata.

This commit updates alias analysis to know about disjoint scopes and
updates the function cloner to also clone the alias domain if it's
disjoint (since, as a herd of LLMs discovered, you don't want the old
IR to be noalias with a clone of itself).

Commits to migrate passes to use disjoint scopes where that's an

    [4 lines not shown]
DeltaFile
+72-72clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
+54-54clang/test/CodeGen/arm_neon_intrinsics.c
+97-0llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+95-0llvm/test/Transforms/InstCombine/noalias-scope-decl-disjoint-domain.ll
+42-42llvm/test/Transforms/LoopUnroll/peel-loop-noalias-scope-decl.ll
+39-35llvm/test/CodeGen/MIR/AMDGPU/machine-metadata.mir
+399-203189 files not shown
+1,342-718195 files

LLVM/project 3403164lld/COFF ICF.cpp

rm stray semi
DeltaFile
+1-1lld/COFF/ICF.cpp
+1-11 files

LLVM/project 652a093lld/COFF ICF.cpp

[lld][COFF] Specialize ICF equality passes, NFC
DeltaFile
+30-25lld/COFF/ICF.cpp
+30-251 files

LLVM/project 36e2d6dlld/COFF ICF.cpp

clang-format
DeltaFile
+3-6lld/COFF/ICF.cpp
+3-61 files

LLVM/project f7224e7lld/COFF ICF.cpp

[lld][COFF] Refactor ICF section equality, NFC

This matches the pattern used in `segregate` (a constant bool
parameter).
DeltaFile
+39-58lld/COFF/ICF.cpp
+39-581 files