LLVM/project 7d72330 — llvm/lib/CodeGen InlineSpiller.cpp, llvm/lib/Target/X86 X86InstrInfo.h

[NFC] Fix "intruction" typos. (#234930)
DeltaFile
+3-3llvm/lib/CodeGen/InlineSpiller.cpp
+2-2llvm/test/MC/AArch64/armv8.1a-atomic.s
+2-2llvm/lib/Target/X86/X86InstrInfo.h
+1-1llvm/utils/TableGen/Common/CodeGenInstruction.h
+1-1llvm/test/Transforms/SimplifyCFG/branch-fold-multiple.ll
+1-1llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll
+10-1019 files not shown
+29-2925 files

LLVM/project ac0786d — llvm/test/Transforms/InstCombine sink-align-assume.ll

[InstCombine] Fix sink-align-assume.ll after #225380 (#236062)

`sink-align-assume.ll` was added between running the CI and landing the
patch.
DeltaFile
+1-2llvm/test/Transforms/InstCombine/sink-align-assume.ll
+1-21 files

LLVM/project cc70739 — llvm/lib/MC TargetRegistry.cpp

[llvm] Show triple in no targets error message (#236053)

Was:
"Unable to find target for this triple (no targets are registered)"

I need to enable some target in my build.
Print the triple being asked for so I can
figure out which one.
DeltaFile
+2-1llvm/lib/MC/TargetRegistry.cpp
+2-11 files

LLVM/project 23f676b — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt epoll_wait.h, libc/src/sys/epoll/linux CMakeLists.txt epoll_wait.cpp

[libc] Use a syscall wrapper for epoll_wait
DeltaFile
+44-0libc/src/__support/OSUtil/linux/syscall_wrappers/epoll_wait.h
+6-21libc/src/sys/epoll/linux/epoll_wait.cpp
+18-4utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+14-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-4libc/src/sys/epoll/linux/CMakeLists.txt
+86-295 files

LLVM/project b87685f — libc/hdr/func CMakeLists.txt, libc/hdr/types CMakeLists.txt

Recommit "[libc] Remove full header dependencies from proxy header targets" (#235752)

Reverts llvm/llvm-project#234668, reapplying #234150. The intermittent
gcc build error has been fixed by #234150.

The original commit message was:

In full-build mode, the proxy headers in libc/hdr/types/ only include
the granular type headers (include/llvm-libc-types/*.h), not the top-
level public headers (which are only included in overlay mode). Having
FULL_BUILD_DEPENDS point at libc.include was unnecessary and forced full
header generation before building internal targets that only needed a
single type.

Similarly, the function proxy headers in libc/hdr/func/ only include
include/__llvm-libc-common.h in full-build mode, so I've replaced their
dependency on libc.include.stdlib with libc.include.llvm_libc_common_h.

Removing these uncovered a few missing or broken dependencies that were

    [14 lines not shown]
DeltaFile
+1-70libc/hdr/types/CMakeLists.txt
+4-4libc/hdr/func/CMakeLists.txt
+6-0libc/test/src/sys/select/CMakeLists.txt
+3-1libc/test/src/sys/select/select_ui_test.cpp
+3-1libc/test/src/sys/select/select_failure_test.cpp
+1-1libc/test/src/unistd/faccessat_test.cpp
+18-773 files not shown
+21-789 files

LLVM/project 50562d9 — clang/lib/CIR/CodeGen CIRGenCUDANV.cpp CIRGenCall.cpp, clang/test/CIR/CodeGenCUDA kernel-declaration.cu kernel-call.cu

[CIR][CUDA] Attach kernel names only to stub definitions (#234911)

CIR currently attaches `cu.kernel_name` to kernel declarations and
launch-site calls, although the attribute describes the device-side name
associated with a host stub definition.

Move `cu.kernel_name` creation to `emitDeviceStub`. This enforces the
attribute's documented placement and matches conventional CodeGen's
emitted-kernel tracking. The definition checks added by #231390 remain
as defensive guards.

Update the CUDA and HIP coverage to verify that the attribute appears on
emitted stub definitions, not declarations or calls.
DeltaFile
+0-11clang/lib/CIR/CodeGen/CIRGenCall.cpp
+7-1clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
+2-2clang/test/CIR/CodeGenCUDA/kernel-call.cu
+1-0clang/test/CIR/CodeGenCUDA/kernel-declaration.cu
+10-144 files

LLVM/project cdc23ec — llvm/lib/Target/AArch64 AArch64InstrFormats.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

fixup! Make renaming consistent
DeltaFile
+19-20llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+3-7llvm/lib/Target/AArch64/AArch64InstrFormats.td
+22-272 files

LLVM/project 73b1f13 — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.h

Fixups
DeltaFile
+1-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-2llvm/lib/Transforms/Vectorize/VPlan.h
+3-52 files

LLVM/project 2a09343 — llvm/lib/Analysis BasicAliasAnalysis.cpp AssumptionCache.cpp, llvm/lib/Transforms/Scalar DropUnnecessaryAssumes.cpp

[llvm] Use BundleAttr instead of comparing strings where applicable (NFC) (#233751)
DeltaFile
+8-8llvm/tools/llubi/lib/Interpreter.cpp
+8-2llvm/lib/Transforms/Scalar/DropUnnecessaryAssumes.cpp
+4-3llvm/lib/Analysis/AssumptionCache.cpp
+2-1llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+2-1llvm/lib/Analysis/BasicAliasAnalysis.cpp
+24-155 files

LLVM/project 2088153 — llvm/include/llvm/IR InstrTypes.h, llvm/lib/Transforms/InstCombine InstructionCombining.cpp InstCombineCalls.cpp

Reapply "[InstCombine] Merge consecutive assumes", round 3 (#225380)

This patch was reverted due to triggering another bug. That bug should
be fixed now, so this should be ready to land again.

Original commit message:

This should make assumes a bit more efficient, since it removes a few
instructions. This should also help with optimizations that are limited
in how many instructions they step through.

This reverts commit 630125ac5be7dab26fcfba8918ee091588616f21.
DeltaFile
+22-14llvm/test/Transforms/InstCombine/assume.ll
+19-3llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+6-0llvm/include/llvm/IR/InstrTypes.h
+1-2llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
+1-2llvm/test/Transforms/InstCombine/assume-loop-align.ll
+1-1llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+50-226 files

LLVM/project f32da79 — llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/lib/IR Verifier.cpp

[IR][GC] Remove leftover typed pointer handling for gc.relocate (#235783)

There is various handling for pointer bitcasts of the result, which can
be dropped now that we have opaque pointers and the verifier ensures
that the return type of gc.relocate returns the same type as the derived
pointer. The verifier is adjusted to check that explicitly -- the
previous check incorrectly allowed the types to differ in element count.

LLM generated patch.
DeltaFile
+3-39llvm/lib/CodeGen/CodeGenPrepare.cpp
+34-0llvm/test/Verifier/gc_relocate_type.ll
+3-27llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+0-28llvm/test/Transforms/RewriteStatepointsForGC/gc-relocate-creation.ll
+0-23llvm/test/Verifier/gc_relocate_addrspace.ll
+2-15llvm/lib/IR/Verifier.cpp
+42-1323 files not shown
+43-1619 files

LLVM/project 34260a6 — clang/lib/Sema SemaTemplate.cpp, clang/test/AST/ByteCode records.cpp

[Clang] Recover invalid lambdas without numbering (#233375)

Those DecltypeExprs used to preserve RecoveryExprs which makes things
complicated when we need to recover errors from a lambda expression.

This patch stops that by recovering as if they were `decltype(int())`,
as well as fixes some other error handlings.

Fixes https://github.com/llvm/llvm-project/issues/150733
Fixes https://github.com/llvm/llvm-project/issues/175713
Fixes https://github.com/llvm/llvm-project/issues/170185
DeltaFile
+58-0clang/test/SemaCXX/invalid-lambda.cpp
+2-4clang/test/AST/ByteCode/records.cpp
+2-3clang/test/SemaCXX/GH220525.cpp
+2-3clang/lib/Sema/SemaTemplate.cpp
+3-2clang/test/SemaCXX/recovery-expr-type.cpp
+0-4clang/test/SemaCXX/invalid-this-in-lambda.cpp
+67-165 files not shown
+77-1911 files

LLVM/project 38a8e47 — lldb/test/API/commands/expression/expr-from-non-zero-frame TestExprFromNonZeroFrame.py, lldb/test/API/lang/cpp/static_members TestCPPStaticMembers.py

[lldb][test] Remove Windows on Arm xfail from some tests (#236044)

Since #229719 these tests pass.

Relates to #232235.
DeltaFile
+0-2lldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
+0-1lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py
+0-1lldb/test/API/commands/expression/expr-from-non-zero-frame/TestExprFromNonZeroFrame.py
+0-43 files

LLVM/project 016eb68 — clang/lib/CodeGen/Targets X86.cpp, clang/test/CIR/Transforms/abi-lowering x86_64-bitint.cir

[Clang][ABI][X86] Don't extend _BitInt returns to 64-bits (#234872)

For X86, _BitInt(N) with N <= 32 is passed iN, while for 32 < N <= 64
it's passed as i64. I don't think there is any good reason for this
difference in behavior, and we should always use iN.

Nominally, this does not change the ABI. The previous Direct pass as i64
implied that the high bits are unspecified. In practice, the callee
zero-extended the value (independent of _BitInt signedness), but the
caller did not rely on that zero-extension. With CIR it was zero or sign
extended, depending on signedness. Both are ultimately correct (because
the high bits are unspecified).

This still leaves behind a peculiarity for 64 < N < 128, which gets
returned as `{ i64, i64 }`, until we reach N=128, when it switches to
`i128`. I believe all of those should also use iN, but I'll leave that
for a separate change. I'm also not changing argument passing here.

Followup to https://github.com/llvm/llvm-project/pull/232729.
DeltaFile
+18-66clang/test/CIR/Transforms/abi-lowering/x86_64-bitint.cir
+1-4llvm/unittests/ABI/X86TargetInfoTest.cpp
+2-3llvm/lib/ABI/Targets/X86.cpp
+2-2clang/test/CodeGenCXX/ext-int.cpp
+1-2clang/lib/CodeGen/Targets/X86.cpp
+1-1clang/test/CodeGen/ext-int-cc.c
+25-781 files not shown
+26-797 files

LLVM/project 4882e30 — clang/test/CodeGen/RISCV rvp-intrinsics.c, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-llvm.amdgcn.image.sample.a16.ll legalize-llvm.amdgcn.image.dim.a16.ll

Merge branch 'main' into users/meinersbur/flang_KIND-detemplatization
DeltaFile
+9,687-0llvm/test/TableGen/x86-fold-tables.inc
+2,726-48clang/test/CodeGen/RISCV/rvp-intrinsics.c
+2,112-452llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.dim.a16.ll
+1,222-1,222llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll
+1,060-1,060llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+1,665-0llvm/test/CodeGen/RISCV/GlobalISel/half-convert.ll
+18,472-2,7821,744 files not shown
+87,766-32,8641,750 files

LLVM/project 65f5cd0 — mlir/include/mlir/IR OperationSupport.h, mlir/lib/Dialect/MemRef/IR MemRefOps.cpp

[mlir][NFC] Fix some different sign comparison warnings (#234999)

I saw these doing a build on Arm 32-bit, but I don't think they're
specific to it.

* OperationSupport.h: std::distance returns a signed type but
kSmallAttributeList is unsigned. I assume first is always before last,
so it's safe to cast std::distance to size_t.
* In MemRefOps.cpp: srcStaticCount is created using llvm::count_if, but
the type is changed. Then later compared to another llvm::count_if.
Fixed that by using auto to keep the same type.
* ModuleTranslation.cpp: numArguments is unsigned, and by using
llvm::range_size we get a size_t we can compare to.
DeltaFile
+2-2mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+2-2mlir/include/mlir/IR/OperationSupport.h
+1-1mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+5-53 files

LLVM/project 9e1b258 — llvm/test/CodeGen/AMDGPU optimize-exec-mask-pre-ra-def-after-use.mir opt-exec-masking-pre-ra-update-liveness-wave32.mir, llvm/test/CodeGen/AMDGPU/GlobalISel knownbits-ptrtoint.mir known-bits-sbfe.mir

[AMDGPU] Update check lines with extra text at the start or end. NFC. (#236029)

This comes from re-autogenerating the checks, but only committing a
specific kind of change where the check line gets extra text at the
start or end. These are cases where the existing check line only worked
because it did not have {{^}} or {{$}} anchors.
DeltaFile
+54-54llvm/test/CodeGen/AMDGPU/GlobalISel/known-bits-sbfe.mir
+33-33llvm/test/CodeGen/AMDGPU/GlobalISel/knownbits-ptrtoint.mir
+24-24llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
+19-19llvm/test/CodeGen/AMDGPU/aa-as-infer.ll
+5-5llvm/test/CodeGen/AMDGPU/opt-exec-masking-pre-ra-update-liveness-wave32.mir
+3-3llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-def-after-use.mir
+138-13814 files not shown
+157-15720 files

LLVM/project 9223ea3 — clang/lib/AST/ByteCode Block.h Descriptor.h

[clang][bytecode][NFC] Remove unused parameter from ctors/dtors (#235594)

We don't need the `Block*` parameter in the descriptor ctor/dtor
functions.
DeltaFile
+29-34clang/lib/AST/ByteCode/Descriptor.cpp
+4-6clang/lib/AST/ByteCode/Descriptor.h
+2-3clang/lib/AST/ByteCode/Block.h
+35-433 files

LLVM/project d50d788 — flang/include/flang/Evaluate expression.h type.h, flang/lib/Evaluate expression.cpp

GPT-6-Sol suggestions
DeltaFile
+21-0flang/unittests/Evaluate/expression.cpp
+2-2flang/include/flang/Evaluate/type.h
+3-0flang/include/flang/Evaluate/expression.h
+1-1flang/lib/Evaluate/expression.cpp
+27-34 files

LLVM/project e0c9e7e — mlir/lib/Dialect/Tosa/IR TosaOps.cpp, mlir/lib/Dialect/Tosa/Transforms TosaValidation.cpp

[mlir][tosa] Move ResizeOp shape checks from verifier to tosa-validate (#234101)

Part of #233457.

`ResizeOp::verify()` reads `scale`/`offset`/`border` from their
`tosa.const_shape` producers and checks their values. That is not local
to the
operation, so these `ERROR_IF` conditions move to `tosa-validate`.

Changes:

- `ResizeOp::verify()`: drop the constant-value checks (non-positive
scale,
output size divisibility / calculated size); keep only the local check
that
  block-scaled input requires `NEAREST_NEIGHBOR` mode.
- `checkErrorIfResize()`: add the missing `scale > 0` check.
- `levelCheckResize()` and `ResizeOp::inferReturnTypeComponents()`: bail
out on

    [2 lines not shown]
DeltaFile
+6-82mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
+14-10mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
+14-0mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
+13-0mlir/test/Dialect/Tosa/level_check.mlir
+12-0mlir/test/Dialect/Tosa/error_if_check.mlir
+59-925 files

LLVM/project 10a235c — llvm/lib/Target/ARM ARMInstrNEON.td ARMInstrMVE.td, llvm/test/CodeGen/ARM fp-intrinsics-vector-v8.ll

[ARM] Don't map ISD::STRICT_FRINT to vector VRINTX (#234644)

The VRINTX instruction on a scalar float respects the rounding mode in
FPSCR, but on a vector of floats, it rounds to nearest always. That
makes it the wrong choice for ISD::STRICT_FRINT, which must use the
dynamic rounding mode. It's only acceptable for ISD::FRINT.

This applies to both MVE and NEON. (The latter only for Armv8 and above:
Armv7 NEON doesn't have that instruction in the first place).
DeltaFile
+49-3llvm/test/CodeGen/ARM/fp-intrinsics-vector-v8.ll
+12-12llvm/lib/Target/ARM/ARMISelLowering.cpp
+16-1llvm/test/CodeGen/Thumb2/mve-strict-round.ll
+1-1llvm/lib/Target/ARM/ARMInstrNEON.td
+1-1llvm/lib/Target/ARM/ARMInstrMVE.td
+79-185 files

LLVM/project 7e843af — offload/libompaccsupport device.cpp, offload/test/offloading generic_spmd_grid.c

[OpenMP][offload] Trade threads for blocks in Generic-SPMD kernels (#234191)

For Generic-SPMD mode, the trip count refers to the outer distribute
loop, the per-iteration cost is unknown. So, prefer more blocks and less
threads for this exec mode. This prevents large blocks with only few
active threads.

This is an upstream port of the corresponding downstream.

Claude assisted with this patch.
DeltaFile
+64-0offload/test/offloading/generic_spmd_grid.c
+39-1offload/libompaccsupport/device.cpp
+12-0openmp/docs/design/Runtimes.md
+115-13 files

LLVM/project 7a34d17 — llvm/lib/Target/AArch64 AArch64Combine.td, llvm/test/CodeGen/AArch64 arm64-extract-insert-varidx.ll neon-shuffle-vector-tbl.ll

[AArch64][GlobalISel] Add mul_to_shl post-legalize. (#236033)
DeltaFile
+11-12llvm/test/CodeGen/AArch64/GlobalISel/knownbits-copy-vector-crash.ll
+5-6llvm/test/CodeGen/AArch64/neon-shuffle-vector-tbl.ll
+5-6llvm/test/CodeGen/AArch64/GlobalISel/compute-known-bits-bitcast-assertion.ll
+3-4llvm/test/CodeGen/AArch64/arm64-extract-insert-varidx.ll
+1-1llvm/lib/Target/AArch64/AArch64Combine.td
+25-295 files

LLVM/project 3018ea6 — .github CODEOWNERS

[CODEOWNERS] Drop all notifications (#236030)

The author would like to drop all CODEOWNERS notifications added in
c4e40dc23 ([CODEOWNERS] Request notifications, #227742) as they have
realized a sharp downside: it is impossible to distinguish cases where
their review was explicitly requested.

See also: #228086.
DeltaFile
+0-4.github/CODEOWNERS
+0-41 files

LLVM/project 142fe65 — llvm/cmake/modules TableGen.cmake

address review comments
DeltaFile
+8-5llvm/cmake/modules/TableGen.cmake
+8-51 files

LLVM/project 0f0c7c3 — libcxx/docs/Status Cxx23Issues.csv

[libc++][ranges] Mark LWG3532 as resolved (#235016)

Already implemented and tested in the scope of the full implementation
for `lazy_split_view`
(https://github.com/llvm/llvm-project/commit/e53c461bf3f0feebb4fd6b43e05a0047f8edb945).

Closes https://github.com/llvm/llvm-project/issues/104342
DeltaFile
+1-1libcxx/docs/Status/Cxx23Issues.csv
+1-11 files

LLVM/project f6b41f1 — llvm/include/llvm/Analysis AliasAnalysis.h, llvm/lib/Analysis BasicAliasAnalysis.cpp

[InstCombine] Remove redundant separate_storage assumes (#233736)

When it can already be proven that two pointers don't alias without the
`separate_storage` assume there is no point in keeping
`separate_storage` assumptions around.
DeltaFile
+28-0llvm/test/Transforms/InstCombine/assume-separate_storage.ll
+7-0llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+3-2llvm/lib/Analysis/BasicAliasAnalysis.cpp
+3-0llvm/include/llvm/Analysis/AliasAnalysis.h
+41-24 files

LLVM/project 7d594cc — llvm/lib/Target/AMDGPU VOP2Instructions.td

[AMDGPU] Restore gfx90a predicate on V_MUL_LEGACY_F32_e64_gfx90a. NFCI. (#232035)

#116288 removed both the AssemblerPredicate and SubtargetPredicate of
isGFX90APlus that applied to V_MUL_LEGACY_F32_e64_gfx90a, leaving it
with no predicates at all. Since it has a different encoding from the
GFX6-GFX10 versions of v_mul_legacy_f32_e64, this meant that the asm
matcher could have selected the wrong encoding on those targets. It
only selected the right one because V_MUL_LEGACY_F32_e64_gfx90a is
defined last.

Restore an AssemblerPredicate of isGFX90APlus on just this instruction,
and fix the stale closing comment on the let block that used to set it
for all of the gfx90a multiclasses.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>

Co-authored-by: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+2-3llvm/lib/Target/AMDGPU/VOP2Instructions.td
+2-31 files

LLVM/project 2d18d3a — offload/libompaccsupport device.cpp, offload/test/offloading generic_spmd_grid.c

use getDeviceBlockLimit instead of OMP_NUM_TEAMS

Trade threads for blocks only while the doubled number of blocks stays within
the device's block limit, which OMP_NUM_TEAMS may lower, instead of not trading
at all if OMP_NUM_TEAMS is set. This keeps every trade a pure one and leaves
getDeviceBlockLimit as it was.

Claude assisted with this patch.
DeltaFile
+14-12offload/libompaccsupport/device.cpp
+10-2offload/test/offloading/generic_spmd_grid.c
+4-3openmp/docs/design/Runtimes.md
+28-173 files

LLVM/project 930a3d4 — flang/lib/Lower MultiImageFortran.cpp, flang/lib/Optimizer/Transforms MIFOpConversion.cpp

[flang][MIF] Adding lowering for EVENT POST/WAIT statements (#210283)

Add lowering of EVENT POST and EVENT WAIT statements to the MIF dialect
(mif.event_post / mif.event_wait), and lowering of coarray references in
hlfir.designate.

- The event variable is passed to PRIF together with the byte offset of
  the event inside its coarray, computed in MIFOpConversion
- The default initialization of event_type coarrays after
prif_allocate_coarray.
- Add lowering tests for EVENT POST / WAIT.

Nonallocatable coarrays are allocated by PRIF, so their storage is on
the heap. This
patch lowers them like allocatable variables:

- `ConvertTyp`e: the type of a coarray is now a !fir.box<!fir.heap<...>,
corank:N> so every descriptor for coarrays carries
CFI_attribute_allocatable.

    [12 lines not shown]
DeltaFile
+334-69flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
+138-0flang/test/Fir/MIF/events.mlir
+132-0flang/test/Fir/MIF/events2.mlir
+99-0flang/test/Lower/MIF/coarray-character-assign.f90
+96-0flang/lib/Lower/MultiImageFortran.cpp
+77-0flang/test/Lower/MIF/coarray_namelist.f90
+876-6928 files not shown
+1,268-16634 files