LLVM/project 11827b9 — llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/lib/Target/RISCV RISCVISelLowering.cpp

[SelectionDAG] Narrow (shr (sub A, B), 1) to AVGSUBFLOOR (#233635)

Add combineShiftToAVGSUB, which forms AVGSUBFLOORS/AVGSUBFLOORU on a
narrower
type when both operands are known to be extended from it, so the
subtract
can't overflow. This is similar to combineShiftToAVG.

The node is only formed if it is legal or custom on the narrow type or
the original type after type legalization. As long as type legalization
won't change the element type. This covers WidenVector, SplitVector and
ScalarizeVector. This can be relaxed in the future.

Remove the RISC-V P extension truncate combine for (P)ASUB(U) since this
is now handled by the generic combine.

Co-Authored-By: Claude Sonnet 5.5 <noreply at anthropic.com>
DeltaFile
+198-0llvm/test/CodeGen/RISCV/rvp-avgsub.ll
+113-6llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+0-11llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+311-173 files

LLVM/project 27a2da4 — llvm/docs ReleaseNotes.md LangRef.md, llvm/lib/Target/RISCV RISCVCallingConv.td

[RISCV] Remove X5 from CSR_RT_MostRegs/CSR_RT_MostRegs_RVE (#238090)

X5 is used by the PLT header, register restore libcall, and machine
outlining. I don't think it's practical to preserve it.

Fixes #235751
DeltaFile
+60-68llvm/test/CodeGen/RISCV/calling-conv-preserve-most.ll
+1-1llvm/lib/Target/RISCV/RISCVCallingConv.td
+1-1llvm/docs/LangRef.md
+1-0llvm/docs/ReleaseNotes.md
+63-704 files

LLVM/project 98740a7 — lld/ELF Driver.cpp

[ELF] Simplify LinkerDriver::addFile. NFC (#238218)

by unifying the LoadJob call sites. A few members are ignored by the
`LoadJob::Binary` case.
DeltaFile
+16-30lld/ELF/Driver.cpp
+16-301 files

LLVM/project e387e12 — llvm/test/MC/RISCV xaifet-amo-valid.s xqcibm-invalid.s, llvm/test/MC/RISCV/corev XCVsimd.s XCVsimd-invalid.s

[nspr] initial commit
DeltaFile
+1,356-1,357llvm/test/MC/RISCV/corev/XCVsimd-invalid.s
+881-882llvm/test/MC/RISCV/corev/XCVsimd.s
+514-515llvm/test/MC/RISCV/rvv/zvlsseg.s
+303-307llvm/test/MC/RISCV/zfa-valid.s
+280-282llvm/test/MC/RISCV/xqcibm-invalid.s
+182-184llvm/test/MC/RISCV/xaifet-amo-valid.s
+3,516-3,527255 files not shown
+8,424-8,666261 files

LLVM/project 64f1319 —

[nspr] update
DeltaFile
+0-00 files

LLVM/project b581457 — lld/MachO ICF.cpp, lld/test/MachO icf-fold-dwarf-frame.s

[lld][MachO] Ignore FDE padding in ICF (#236075)

MC pads each FDE so that it ends at a multiple of its address size, so
the same FDE gets different padding depending on where it starts. ICF
required FDEs to have equal sizes, so identical functions could fail to
fold depending on where their FDEs were placed. Ignore the length field
and trailing DW_CFA_nop padding.
DeltaFile
+15-1lld/MachO/ICF.cpp
+8-6lld/test/MachO/icf-fold-dwarf-frame.s
+23-72 files

LLVM/project 1dbd6e0 — llvm/utils convert_mc_test_to_verify.py

[nspr] initial commit
DeltaFile
+208-0llvm/utils/convert_mc_test_to_verify.py
+208-01 files

LLVM/project e6f8a48 — llvm/docs/CommandGuide llvm-mc.md, llvm/include/llvm/Support SourceMgrDiagnosticVerifier.h

[nspr] initial commit
DeltaFile
+23-10llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
+15-10llvm/include/llvm/Support/SourceMgrDiagnosticVerifier.h
+22-2llvm/test/tools/llvm-mc/verify/basic.s
+9-7mlir/docs/Diagnostics.md
+4-1llvm/tools/llvm-mc/llvm-mc.cpp
+4-1llvm/docs/CommandGuide/llvm-mc.md
+77-311 files not shown
+79-327 files

LLVM/project 3a55fec — llvm/lib/Support SourceMgrDiagnosticVerifier.cpp, llvm/test/tools/llvm-mc/verify highlight.s

[nspr] initial commit
DeltaFile
+2-3llvm/test/tools/llvm-mc/verify/highlight.s
+2-2llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
+1-1mlir/docs/Diagnostics.md
+5-63 files

LLVM/project 41ad2f5 — mlir/test/Dialect/Transform expensive-checks.mlir, mlir/test/Examples/transform/Ch1 invalidation-1.mlir

[nspr] update
DeltaFile
+2-2mlir/test/Examples/transform/Ch1/invalidation-1.mlir
+1-1mlir/test/Dialect/Transform/expensive-checks.mlir
+3-32 files

LLVM/project c724090 — llvm/docs/CommandGuide llvm-mc.md, llvm/include/llvm/Support SourceMgrDiagnosticVerifier.h

[nspr] update
DeltaFile
+16-37llvm/lib/Support/SourceMgrDiagnosticVerifier.cpp
+13-5llvm/tools/llvm-mc/llvm-mc.cpp
+8-8llvm/include/llvm/Support/SourceMgrDiagnosticVerifier.h
+2-1llvm/docs/CommandGuide/llvm-mc.md
+39-514 files

LLVM/project c73c3d8 — clang/lib/AST/ByteCode Block.h

[clang][bytecode][NFC] Remove unused `Block::getMetadataSize()` (#238031)
DeltaFile
+1-3clang/lib/AST/ByteCode/Block.h
+1-31 files

LLVM/project 5688525 — llvm/include/llvm/IR IntrinsicsRISCV.td, llvm/lib/Target/RISCV RISCVISelLowering.cpp

[RISCV][P-ext] Convert Intrinsic::riscv_pmerge to RISCVISD::MERGE in ReplaceNodeResults. (#238140)

Instead of emitting a new intrinsic. This is possible now that we have
patterns for RISCVISD::MERGE that don't use bitcasts to scalar.

Annoyingly the operands are in a different order because RISCVISD::MERGE
matches the operand order of the merge instruction while the intrinsic
takes the operand from RVV's vmerge.
DeltaFile
+6-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+1-1llvm/include/llvm/IR/IntrinsicsRISCV.td
+7-12 files

LLVM/project 49b3d49 — llvm/include/llvm/IR RuntimeLibcalls.h, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Handle int and long size more similarly

Previously we eagerly computed the int size and passed it through all
the various functions to get the type signature. The long cases were
evaluated in the context that need a long. Treat these the same way
which reduces the number of arguments passed around.
DeltaFile
+13-9llvm/lib/IR/RuntimeLibcalls.cpp
+1-1llvm/include/llvm/IR/RuntimeLibcalls.h
+14-102 files

LLVM/project be8806b — flang/lib/Lower ConvertCall.cpp, flang/lib/Lower/OpenMP OpenMP.cpp

[flang][OpenMP] Support for nocontext and novariants clauses for dispatch construct (#227954)

Support for nocontext and novariants clauses for dispatch construct in
flang.
DeltaFile
+533-6flang/test/Lower/OpenMP/dispatch.f90
+245-103flang/lib/Lower/ConvertCall.cpp
+242-0flang/test/Integration/OpenMP/dispatch.f90
+152-0flang/test/Fir/OpenMP/dispatch.fir
+48-2flang/lib/Lower/OpenMP/OpenMP.cpp
+50-0flang/test/Semantics/OpenMP/dispatch.f90
+1,270-1118 files not shown
+1,380-13514 files

LLVM/project c75fe30 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt sendfile.h, libc/src/sys/sendfile/linux CMakeLists.txt sendfile.cpp

[libc] Use a syscall wrapper for sendfile (#237955)

This PR move sendfile behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+46-0libc/src/__support/OSUtil/linux/syscall_wrappers/sendfile.h
+40-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+5-17libc/src/sys/sendfile/linux/sendfile.cpp
+15-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-2libc/src/sys/sendfile/linux/CMakeLists.txt
+110-195 files

LLVM/project 0a16c20 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt uname.h, libc/src/sys/utsname/linux CMakeLists.txt uname.cpp

[libc] Use a syscall wrapper for uname (#237954)

This PR move uname behind the centralized syscall wrappers, following
libc/docs/dev/syscall_wrapper_refactor.md.

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+50-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+35-0libc/src/__support/OSUtil/linux/syscall_wrappers/uname.h
+7-8libc/src/sys/utsname/linux/uname.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-2libc/src/sys/utsname/linux/CMakeLists.txt
+109-105 files

LLVM/project 77f22af — llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Stop returning an attribute when getting libcall types (#238209)

The attribute half of the pair has been empty since the extension
attributes moved to getIntExtAttr, so return just the type.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+40-47llvm/lib/IR/RuntimeLibcalls.cpp
+40-471 files

LLVM/project 3f06a35 — llvm/lib/CodeGen/LiveDebugValues LiveDebugValues.cpp

Not sure why the bot needs this include but I don't
DeltaFile
+1-0llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
+1-01 files

LLVM/project b171152 — llvm/include/llvm/IR Module.h, llvm/lib/CodeGen/AsmPrinter DwarfDebug.cpp

Actually resolve the default in Module
DeltaFile
+2-1llvm/include/llvm/IR/Module.h
+0-2llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+1-1llvm/lib/IR/Module.cpp
+3-43 files

LLVM/project 8ef26c9 — clang/lib/Driver/ToolChains CommonArgs.cpp, clang/test/Driver lto-aix.c

CodeGen: Replace TargetOptions::DebuggerTuning with module flag

Read the debugger tuning from the module's "debugger-tuning" flag instead of
TargetOptions. Delete the now-dead -debugger-tune= cl::opt and the
TargetOptions::DebuggerTuning field.

Update the tests relying on it to directly use the module flag. The cases
that exercise multiple values do a text substitution to swap the value.
Alternatively this could be changed to synthesize the module flag in the
llc flag like some of the other widely used module flags do.

Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>
DeltaFile
+24-19llvm/test/DebugInfo/MIR/X86/call-site-gnu-vs-dwarf5-attrs.mir
+6-16llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+12-9llvm/test/DebugInfo/X86/convert-debugloc.ll
+6-14clang/test/Driver/lto-aix.c
+13-5llvm/test/DebugInfo/X86/debugger-tune.ll
+0-17clang/lib/Driver/ToolChains/CommonArgs.cpp
+61-8058 files not shown
+243-25164 files

LLVM/project f2823c2 — llvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor memory-behavior-instruction-value.ll

Attributor: Only use anchor instruction effects for call site positions (#231635)

AAMemoryBehavior initialized the known state of a position from the
mayReadFromMemory/mayWriteToMemory of its anchor instruction. This is
only correct when the anchor is the call. For a floating pointer value
defined by a load, the load does not write, but the pointer may still be
written through. AAInvariantLoadPointer then marked loads as invariant
that were clobbered in the same function, which miscompiled sqlite3 with
-attributor-enable=full.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+43-0llvm/test/Transforms/Attributor/memory-behavior-instruction-value.ll
+12-5llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+1-1llvm/test/Transforms/OpenMP/parallel_deletion.ll
+56-63 files

LLVM/project 1c7f494 — mlir/include/mlir/Analysis/Presburger PresburgerRelation.h, mlir/lib/Analysis/Presburger PresburgerRelation.cpp

[mlir][Presburger] Add PresburgerRelation::gist

Add PresburgerRelation::gist (and PresburgerSet forwarding overloads)
for a convex context and for a context that is itself a union of
disjuncts, following ISL's isl_map_gist / isl_map_gist_basic_map.

For a convex context, each disjunct is simplified separately with
IntegerRelation::gist; disjuncts that become empty are dropped and if any
disjunct becomes the universe, the universe is returned.

For a non-convex context, the trivial cases (universe set or context,
empty context, equal set and context, context being a subset of the
set) are handled first. Otherwise, the context is approximated by a
convex set. Instead of ISL's unshifted simple hull of the context and the
set, we use the universe together with all constraints of the disjuncts
of the context and of the set that are valid for every disjunct of the
context (checked with Simplex); including the constraints of the set
allows removing constraints that are implied by every disjunct of the
context even if they are not implied by the simple hull.
DeltaFile
+142-0mlir/unittests/Analysis/Presburger/PresburgerSetTest.cpp
+122-0mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
+39-0mlir/unittests/Analysis/Presburger/PresburgerRelationTest.cpp
+23-0mlir/include/mlir/Analysis/Presburger/PresburgerRelation.h
+326-04 files

LLVM/project d49de3e — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] Add IntegerRelation::gist (context-based simplification)

Add IntegerRelation::gist(context), a port of ISL's isl_basic_map_gist
(uset_gist / uset_gist_full). It replaces the relation S by a relation
S' such that S' ∩ context == S ∩ context, with as few constraints as
possible: constraints of S that are implied by the context together with
the remaining constraints of S are removed, and the remaining constraints
may be rewritten using the equalities of the context. Outside of the
context S' may differ from S, so the result is only meaningful together
with the context. The result has at most as many constraints as S
(except that the constraints defining a division that is still used may
be restored, see below), never more local variables, and never involves
variables that S does not involve; in particular, locals of the context
are never introduced.

Trivial cases: an obviously empty context yields the universe; if the
intersection with the context is found to be empty later (inconsistent
combined equalities, a context that turns out to be rationally empty, or
an empty combined Simplex), the result is empty; an obviously empty S

    [43 lines not shown]
DeltaFile
+489-0mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
+281-0mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+48-1mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+41-0mlir/unittests/Analysis/Presburger/IntegerRelationTest.cpp
+34-0mlir/unittests/Analysis/Presburger/Utils.h
+893-15 files

LLVM/project 7f0e7a3 — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] Add IntegerRelation::reduceUsingEqualities helper

Add a protected helper that rewrites all constraints of a relation using
the equalities of another relation in the same space, without changing
the intersection of the two. This is a port of ISL's
isl_basic_set_reduce_using_equalities together with
project_onto_involved: the equalities are first projected onto the
variables that occur in the relation being reduced, so that no new
variables (in particular, no locals of the other relation) are
introduced, and each remaining equality is then used to eliminate its
last variable with a non-zero coefficient from every constraint, so that
later variables (locals) are eliminated in favor of earlier ones.

This is a building block for context-based simplification (gist) and is
exercised by the gist tests added in a follow-up commit, since there is
no existing pattern for unit-testing protected members of
IntegerRelation.
DeltaFile
+108-0mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+17-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+125-02 files

LLVM/project 5ef751f — llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Stop returning an attribute when getting libcall types

The attribute half of the pair has been empty since the extension
attributes moved to getIntExtAttr, so return just the type.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+40-47llvm/lib/IR/RuntimeLibcalls.cpp
+40-471 files

LLVM/project 476f7da — mlir/include/mlir/Analysis/Presburger IntegerRelation.h, mlir/lib/Analysis/Presburger IntegerRelation.cpp

[mlir][Presburger] Add IntegerRelation::reduceUsingEqualities helper

Add a protected helper that rewrites all constraints of a relation using
the equalities of another relation in the same space, without changing
the intersection of the two. This is a port of ISL's
isl_basic_set_reduce_using_equalities together with
project_onto_involved: the equalities are first projected onto the
variables that occur in the relation being reduced, so that no new
variables (in particular, no locals of the other relation) are
introduced, and each remaining equality is then used to eliminate its
last variable with a non-zero coefficient from every constraint, so that
later variables (locals) are eliminated in favor of earlier ones.

This is a building block for context-based simplification (gist) and is
exercised by the gist tests added in a follow-up commit, since there is
no existing pattern for unit-testing protected members of
IntegerRelation.
DeltaFile
+120-4mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+30-0mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+150-42 files

LLVM/project 44f8929 — llvm/test/CodeGen/AMDGPU memory-legalizer-global-system.ll memory-legalizer-global-agent.ll

Merge branch 'main' into users/void/interp-strip-mangling-escape
DeltaFile
+7,612-3,682llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+7,188-3,478llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+4,386-2,069llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+4,138-1,953llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+32,216-15,3764,197 files not shown
+94,698-37,0214,203 files

LLVM/project 7b3d5ef — llvm/test/CodeGen/AMDGPU memory-legalizer-global-system.ll memory-legalizer-global-agent.ll

Merge branch 'main' into users/void/libclang-dependent-cursor-referenced
DeltaFile
+7,612-3,682llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+7,188-3,478llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
+4,446-2,097llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-agent.ll
+4,386-2,069llvm/test/CodeGen/AMDGPU/memory-legalizer-global-agent.ll
+4,138-1,953llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll
+32,216-15,3764,197 files not shown
+94,698-37,0214,203 files

LLVM/project 9a44d80 — lld/MachO SyntheticSections.cpp

Drop a redundant mask and reword the inline-addend comment

Assigning to the 19-bit bitfield already truncates, and the comment had
lost a verb. Say which linker we match and that the field is two's
complement.

Assisted-by: Claude Code
DeltaFile
+5-4lld/MachO/SyntheticSections.cpp
+5-41 files