LLVM/project fa7a48c — utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes a4c9384 (#231882)

This fixes a4c93844daf0278020e636d6c7854fb0c9d0479f (#231412).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=a4c93844daf0278020e636d6c7854fb0c9d0479f

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

LLVM/project 46dc799 — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Transforms/Inline/AArch64 sme-pstatesm-attrs.ll

[AArch64][SME] NFC: Add inline test for gather.

Also combine case statements (is NFC change).
DeltaFile
+21-1llvm/test/Transforms/Inline/AArch64/sme-pstatesm-attrs.ll
+0-6llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+21-72 files

LLVM/project f3a34c8 — llvm/test/CodeGen/AMDGPU bitop3-shared-operand.ll, llvm/test/CodeGen/AMDGPU/GlobalISel fsub.bf16.ll

[AMDGPU] Regenerate checks in two tests (#231879)
DeltaFile
+331-0llvm/test/CodeGen/AMDGPU/GlobalISel/fsub.bf16.ll
+1-1llvm/test/CodeGen/AMDGPU/bitop3-shared-operand.ll
+332-12 files

LLVM/project c8cd864 — llvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp, llvm/test/CodeGen/SPIRV bool-vector-bitcast-wide.ll

[SPIR-V] Decompose bool vector bitcasts element-wise (#231150)

`preprocessBoolVectorBitcasts` (#187960) lowers bitcasts to or from `<N
x i1>` through an `iN`, which fails with `Unsupported Integer width!`
once N exceeds the maximum SPIR-V integer width. InstCombine creates
such bitcasts from `trunc (extractelement <16 x i32> %v, 0) to i1`,
which becomes an extract from a `<512 x i1>` bitcast. We hit this in
Julia's KernelAbstractions.jl, which shuffles a struct with a `Bool`
field as a `<16 x i32>`.

When the other side is a vector, convert it per element instead: lane
`I` is bit `I % K` of element `I / K`. Scalars and single-element
vectors keep the `iN` path. Since no InstCombine runs afterwards,
constant-index extracts are computed directly rather than materializing
every lane.
DeltaFile
+216-0llvm/test/CodeGen/SPIRV/bool-vector-bitcast-wide.ll
+56-35llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+272-352 files

LLVM/project 0a9cea1 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve2-sqabs.ll sqabs.ll

Apply suggestions
DeltaFile
+8-15llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+3-8llvm/test/CodeGen/AArch64/sqabs.ll
+1-1llvm/test/CodeGen/AArch64/sve2-sqabs.ll
+12-243 files

LLVM/project d977b45 — offload/unittests/OffloadAPI/memory olMemAllocAligned.cpp

[offload] expand aligned allocation API tests (#222558)

This PR adds a few test cases to offload alignment support.
DeltaFile
+64-0offload/unittests/OffloadAPI/memory/olMemAllocAligned.cpp
+64-01 files

LLVM/project bbf3078 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt sched_setparam.h, libc/src/sched/linux CMakeLists.txt sched_setparam.cpp

[libc] Use a syscall wrapper for sched_setparam
DeltaFile
+37-0libc/src/__support/OSUtil/linux/syscall_wrappers/sched_setparam.h
+32-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+14-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-6libc/src/sched/linux/sched_setparam.cpp
+4-3libc/src/sched/linux/CMakeLists.txt
+91-95 files

LLVM/project a0c0723 — llvm/test/Transforms/OpenMP spmdization_guarding_two_reaching_kernels.ll

fix spmdization_guarding_two_reaching_kernels.ll
DeltaFile
+1-1llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
+1-11 files

LLVM/project b4dd865 — offload/plugins-nextgen/amdgpu/dynamic_hsa hsa.cpp hsa_ext_amd.h, offload/plugins-nextgen/amdgpu/src rtl.cpp

[offload] Use HSA SVM for AMDGPU shared memory
DeltaFile
+176-29offload/plugins-nextgen/amdgpu/src/rtl.cpp
+68-0offload/test/api/omp_device_managed_memory_ops.c
+31-0offload/test/api/amdgpu_managed_memory_accessible.c
+27-1offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h
+12-0openmp/docs/design/Runtimes.md
+2-0offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.cpp
+316-301 files not shown
+317-307 files

LLVM/project 17d1e2c — offload/plugins-nextgen/amdgpu/src rtl.cpp

fix braces
DeltaFile
+2-1offload/plugins-nextgen/amdgpu/src/rtl.cpp
+2-11 files

LLVM/project 0223b87 — offload/plugins-nextgen/amdgpu/dynamic_hsa hsa.cpp hsa.h, offload/plugins-nextgen/amdgpu/src rtl.cpp

[offload][AMDGPU] Add dynamic HSA version and symbol checks (#228569)

Claude assisted with this patch.
DeltaFile
+15-8offload/plugins-nextgen/amdgpu/src/rtl.cpp
+11-0offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h
+2-0offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.h
+1-0offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.cpp
+29-84 files

LLVM/project 77ad33b — llvm/include/llvm/TargetParser CMakeLists.txt, llvm/lib/Target/AArch64 AArch64TargetParserDef.td

AArch64: Use minimal tablegen inputs for TargetParser

Generate AArch64TargetParserDef.inc from a minimal file instead of all
of AArch64.td

llvm-min-tblgen -gen-arm-target-def

                             Gigainstructions  Peak RSS  .td deps
  AArch64.td                 3.36              169 MB    100
  AArch64TargetParserDef.td  0.05                7 MB     10

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+19-0llvm/lib/Target/AArch64/AArch64TargetParserDef.td
+1-1utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+1-1llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
+1-1llvm/include/llvm/TargetParser/CMakeLists.txt
+22-34 files

LLVM/project 26b3eb1 — llvm/lib/Target/AArch64 AArch64SchedThunderX3T110.td AArch64SchedThunderX2T99.td

AArch64: Move scheduling model definitions to separate file

Move the SchedMachineModel definitions, and the unsupported feature
lists they use, out of the scheduling files. The processor definitions
can then be parsed without the instruction and scheduling information.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+551-0llvm/lib/Target/AArch64/AArch64SchedModels.td
+1-60llvm/lib/Target/AArch64/AArch64.td
+0-19llvm/lib/Target/AArch64/AArch64SchedKryo.td
+0-18llvm/lib/Target/AArch64/AArch64SchedThunderX3T110.td
+0-18llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
+0-18llvm/lib/Target/AArch64/AArch64SchedOlympus.td
+552-13327 files not shown
+552-54333 files

LLVM/project 7d0dae5 — llvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64Predicates.td

AArch64: Move predicate definitions to separate file

Split the subtarget predicate definitions out of AArch64InstrInfo.td
so they can be used without parsing the instruction definitions.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+430-0llvm/lib/Target/AArch64/AArch64Predicates.td
+1-422llvm/lib/Target/AArch64/AArch64InstrInfo.td
+431-4222 files

LLVM/project faf60e7 — clang/lib/CIR/CodeGen CIRGenModule.cpp CIRGenCUDANV.cpp, clang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp

[CIR][HIP] Support managed variables (#230910)

Lower HIP __managed__ variables in CIR as classic codegen does

- Rename variable x to `x.managed` and add a pointer x that the runtime
fills in
- Access the variable through that pointer
- Register it with __hipRegisterManagedVar
DeltaFile
+97-0clang/test/CIR/CodeGenHIP/managed-var.hip
+56-22clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+70-0clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
+4-2clang/test/CIR/CodeGenCUDA/template-class-static-member.cu
+1-2clang/lib/CIR/CodeGen/CIRGenModule.cpp
+228-265 files

LLVM/project a525c67 — llvm/test/CodeGen/LoongArch/lasx xvexth.ll vec-i128.ll, llvm/test/CodeGen/LoongArch/lasx/ir-instruction add.ll sub.ll

[LoongArch] Add support for vector add/sub on vNi128 types

Make v1i128 and v2i128 legal types in the LSX/LASX register classes and
lower ADD/SUB on them to VADD.Q/XVADD.Q and VSUB.Q/XVSUB.Q.

The vNi128 types are intentionally kept out of LSXVTs/LASXVTs so that
only a minimal set of operations is legal on them: LOAD, STORE, BITCAST,
UNDEF, ADD, SUB and VSELECT (via [X]VBITSEL.V). VECTOR_SHUFFLE is custom
lowered by performing the shuffle on the equivalent i64 vector type.
Everything else keeps the default Expand action.

Since the widening extend combine can now produce VEXTH/VEXTH_U on
vNi128, also add the [X]VEXTH.Q.D and [X]VEXTH.QU.DU patterns.
DeltaFile
+188-196llvm/test/CodeGen/LoongArch/lsx/vec-i128.ll
+158-206llvm/test/CodeGen/LoongArch/lasx/vec-i128.ll
+9-97llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sub.ll
+9-91llvm/test/CodeGen/LoongArch/lasx/ir-instruction/add.ll
+14-58llvm/test/CodeGen/LoongArch/lasx/xvexth.ll
+9-48llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sub.ll
+387-6966 files not shown
+500-80212 files

LLVM/project 87663b3 — llvm/test/CodeGen/LoongArch/lasx vec-i128.ll, llvm/test/CodeGen/LoongArch/lasx/ir-instruction add.ll sub.ll

[LoongArch][NFC] Add tests for vector add/sub on vNi128

Also add tests for load/store, select and shuffle on vNi128 types to
make sure operations without dedicated support are still legalized
correctly.
DeltaFile
+277-0llvm/test/CodeGen/LoongArch/lasx/vec-i128.ll
+277-0llvm/test/CodeGen/LoongArch/lsx/vec-i128.ll
+106-2llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sub.ll
+100-2llvm/test/CodeGen/LoongArch/lasx/ir-instruction/add.ll
+57-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sub.ll
+57-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/add.ll
+874-86 files

LLVM/project 3dcb036 — llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp GCNHazardRecognizer.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

Revert "[AMDGPU] Handle gfx950 v_pk_{add,mul,fma}_f32 invalid op_sel (#231506)"

This reverts commit 4f792b8a893f804dcf8f68366b429be939ecaaee.
DeltaFile
+0-719llvm/test/CodeGen/AMDGPU/gfx950-pk-f32-invalid-op-sel.ll
+0-132llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+0-49llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+0-24llvm/test/MC/AMDGPU/gfx950_err.s
+0-16llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+0-16llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+0-9563 files not shown
+0-9669 files

LLVM/project 5915ac9 — libc/src/sched/linux CMakeLists.txt sched_setscheduler.cpp, utils/bazel/llvm-project-overlay/libc BUILD.bazel

[libc] Use a syscall wrapper for `sched_setscheduler` (#231865)

Follow up of https://github.com/llvm/llvm-project/pull/231512.

This PR move `sched_setscheduler` behind the centralized syscall
wrappers, following `libc/docs/dev/syscall_wrapper_refactor.md`.
DeltaFile
+15-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+5-8libc/src/sched/linux/sched_setscheduler.cpp
+4-3libc/src/sched/linux/CMakeLists.txt
+24-113 files

LLVM/project a4c9384 — mlir/include/mlir/Dialect/Vector/TransformOps VectorTransformOps.td, mlir/lib/Dialect/Vector/TransformOps VectorTransformOps.cpp

[mlir][vector] Expose vector linearize as transforms (#231412)

Adds vector linearize patterns as a transform op.

The transforms design follows existings tests which are also converted
to use transform schedules instead of dedicated test passes.

Assisted-by: Claude
DeltaFile
+0-159mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
+60-0mlir/lib/Dialect/Vector/Transforms/VectorLinearize.cpp
+46-1mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
+43-0mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp
+36-0mlir/test/python/dialects/transform_vector_ext.py
+32-0mlir/test/Dialect/Vector/td/linearize.mlir
+217-1604 files not shown
+233-16310 files

LLVM/project b6de057 — llvm/test/CodeGen/AArch64 sve2-sqabs.ll sqabs.ll

[AArch64] Pre-commit SQABS splat and feature tests

Cover a partially poison clamp and SVE with SME but without SVE2 in
normal and streaming modes.
DeltaFile
+12-0llvm/test/CodeGen/AArch64/sqabs.ll
+2-0llvm/test/CodeGen/AArch64/sve2-sqabs.ll
+14-02 files

LLVM/project e1835f7 — llvm/include/llvm/CodeGen AntiDepBreaker.h MachineScheduler.h, llvm/lib/CodeGen CriticalAntiDepBreaker.h AggressiveAntiDepBreaker.cpp

Rebase and code refactor

Created using spr 1.3.6-beta.1
DeltaFile
+112-86llvm/lib/CodeGen/MachineScheduler.cpp
+26-3llvm/include/llvm/CodeGen/MachineScheduler.h
+8-4llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
+4-2llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
+4-2llvm/include/llvm/CodeGen/AntiDepBreaker.h
+1-1llvm/lib/CodeGen/CriticalAntiDepBreaker.h
+155-982 files not shown
+157-998 files

LLVM/project 751a308 — llvm/include/llvm/CodeGen MachineScheduler.h, llvm/lib/CodeGen MachineScheduler.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+112-81llvm/lib/CodeGen/MachineScheduler.cpp
+26-3llvm/include/llvm/CodeGen/MachineScheduler.h
+1-0llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
+139-843 files

LLVM/project a7ac0b0 — llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Transforms/IndVarSimplify widen-zext-nneg-add-nsw-runtime-start.ll eliminate-comparison.ll

[SCEV] Prove monotonic predicates from loop entry in isKnownViaInduction

Prove "IV pred Inv" on every iteration of a loop when Inv is
loop-invariant, the predicate holds on loop entry, and it can only change
from false to true as the loop iterates.

Before, the predicate also had to be proven on the backedge, which
usually fails when the loop exit only bounds the IV from above. E.g.
i >=s 0 for an nsw IV starting at s was not proven even when s >=s 0 was
known on entry. As a result, in a loop guarded by "start <u len",
IndVars could not compute a[i - 32] in i64.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+85-0llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+78-0llvm/test/Transforms/IndVarSimplify/monotonic-predicate-samesign.ll
+56-9llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
+14-19llvm/test/Transforms/IndVarSimplify/widen-zext-nneg-add-nsw-runtime-start.ll
+8-24llvm/test/Transforms/PhaseOrdering/indvars-vectorize-runtime-start.ll
+12-3llvm/lib/Analysis/ScalarEvolution.cpp
+253-552 files not shown
+259-618 files

LLVM/project 19bda85 — flang/test/Lower/Intrinsics ieee_logb.f90

[flang] simplify ieee_logb.f90 (NFC) (#229644)

This patch is to simplify the test to focus on lowering of the ieee_logb
intrinsic so that it can be tested with other targets. The test is also
enabled for the PPC target.
DeltaFile
+32-98flang/test/Lower/Intrinsics/ieee_logb.f90
+32-981 files

LLVM/project 3150196 — llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV][NFC] Factor getMonotonicPredicate out of getLoopInvariantPredicate

The next change needs the same setup as getLoopInvariantPredicate.

Move it into a private helper: put the loop-invariant operand on the
RHS, check that the other side is a recurrence of the loop, and compute
the predicate's monotonicity.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+24-9llvm/lib/Analysis/ScalarEvolution.cpp
+19-0llvm/include/llvm/Analysis/ScalarEvolution.h
+43-92 files

LLVM/project 3307604 — llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV][NFC] Use isKnownOnEveryIteration in isKnownViaInduction

isKnownViaInduction and isKnownOnEveryIteration both prove a predicate
on every iteration from loop entry and the backedge, so the next change
can extend one place.

Add a private isKnownOnEveryIteration overload that takes any LHS and
RHS and the loop, and move the entry/backedge check from
isKnownViaInduction into it. The public overload is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+30-24llvm/lib/Analysis/ScalarEvolution.cpp
+5-0llvm/include/llvm/Analysis/ScalarEvolution.h
+35-242 files

LLVM/project 5ef967a — lldb/test/API/functionalities/target_var TestTargetVar.py, lldb/test/API/lang/c/tls_globals TestTlsGlobals.py

[NFC][lldb] Remove remaining TEST_WITH_PDB_DEBUG_INFO (#231579)

`TEST_WITH_PDB_DEBUG_INFO` is no longer used.
DeltaFile
+0-2lldb/test/API/lang/cpp/class_static/TestStaticVariables.py
+0-2lldb/test/API/functionalities/target_var/TestTargetVar.py
+0-1lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
+0-53 files

LLVM/project 1651cef — flang/lib/Optimizer/OpenACC/Support CMakeLists.txt RegisterOpenACCExtensions.cpp, flang/test/Transforms licm-acc-gang-redundant.fir

[flang][acc] Do not hoist loops into gang-redundant code of a parallel region

In a compute region from an acc.parallel construct, code outside of the
loops with gang-level worksharing is executed redundantly by all gangs.
A loop that LICM moved there from inside an scf.parallel could later be
distributed across gangs. When its result is used in the same kernel,
each gang then only computed part of it, giving wrong results.

Attach an OpenACC-aware fir::OperationMoveOpInterface model to
scf.parallel that does not allow moving loops out of it in a compute
region from an acc.parallel construct.
DeltaFile
+107-0flang/test/Transforms/licm-acc-gang-redundant.fir
+28-0flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
+8-0flang/lib/Optimizer/OpenACC/Support/RegisterOpenACCExtensions.cpp
+2-0flang/lib/Optimizer/OpenACC/Support/CMakeLists.txt
+145-04 files

LLVM/project 376d7c5 — lldb/test/API/api/multithreaded test_listener_event_description.cpp test_concurrent_unwind.cpp, lldb/test/API/api/multithreaded/concurrent_unwind test_concurrent_unwind.cpp

[lldb][NFC] Split up TestMultithreaded.py (#231856)

This splits the big and slow TestMultithreaded test into several smaller
tests. This allows running subtests in parallel.

It also makes it more obvious which of the subtests is flakey as the
test sometimes hangs on the bots without any output.
DeltaFile
+0-161lldb/test/API/api/multithreaded/test_stop-hook.cpp
+161-0lldb/test/API/api/multithreaded/stop_hook/test_stop-hook.cpp
+0-124lldb/test/API/api/multithreaded/TestMultithreaded.py
+0-98lldb/test/API/api/multithreaded/test_concurrent_unwind.cpp
+98-0lldb/test/API/api/multithreaded/concurrent_unwind/test_concurrent_unwind.cpp
+0-94lldb/test/API/api/multithreaded/test_listener_event_description.cpp
+259-47729 files not shown
+872-78735 files