LLVM/project 0ae27ad — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 sve-ldst.ll masked_ldst.ll

Revert "[AArch64][CostModel] Consider some nxv1 operations as legal" (#226531)

Reverts llvm/llvm-project#214471

This caused a failure in
https://lab.llvm.org/buildbot/#/builders/198/builds/15417 and I want to
spend a bit more time to test the ISel for vector_reverse and
vector_splice. It's also quite surprising that the test picked a VF of
`vscale x 1`
DeltaFile
+41-22llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll
+9-48llvm/test/CodeGen/AArch64/sve-int-arith.ll
+20-31llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+4-4llvm/test/Analysis/CostModel/AArch64/sve-ldst.ll
+3-3llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
+6-0llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll
+83-1084 files not shown
+89-11410 files

LLVM/project d220d5e — clang/include/clang/Interpreter Interpreter.h, clang/lib/Interpreter Interpreter.cpp

[clang-repl] Initialized HIP environment for clang-repl (#217582)

This PR initializes the HIP environment for clang-repl. Since an
IncrementalHipDeviceParser does not exist yet, a message is printed
after the environment setup indicating that the HIP environment was set
up but is not yet supported.

It also adds a test file that runs clang-repl with the -hip option and
checks that this message is printed. Once the parser is built, the
current test file will be removed and replaced with tests that verify
the complete flow.

This PR has a prerequisite, #217228, which skips emitting the
`__hip_cuid_` global under incremental extensions. Without it,
clang-repl's HIP mode would emit the same symbol in every incremental
module and fail at JIT link with a duplicate-symbol error.

Assisted by Claude Opus 4.8
DeltaFile
+45-20clang/tools/clang-repl/ClangRepl.cpp
+35-22clang/lib/Interpreter/Interpreter.cpp
+53-1clang/test/lit.cfg.py
+32-7clang/include/clang/Interpreter/Interpreter.h
+11-0clang/test/Interpreter/HIP/hip-environment.hip
+2-0clang/test/Interpreter/HIP/lit.local.cfg
+178-506 files

LLVM/project 3bcbae4 — lldb/include/lldb/Target DynamicRegisterInfo.h, lldb/source/Target DynamicRegisterInfo.cpp

[lldb] Introduce DynamicRegisterInfo::RegisterSetWithStorage (#225555)

The RegisterSet struct is created in 2 different ways:
1.) Statically in headers/source files for register sets that are known
    ahead of time.
2.) Dynamically according to input from outside of LLDB. Usually this is
through the gdb-remote stub, but may also come from a python script or
    by determining an ISA variant's features (e.g. in RISCV).

This PR aims to address the lifetime of strings in RegisterSet. In
scenario (1), the lifetime of all data in a RegisterSet is static and
there is no concern about dangling pointers. However, in scenario (2),
DynamicRegisterInfo maintains a vector of RegisterSets. Until now, it
has relied on ConstString to persist the storage for the strings
indefinitely. As part of my quest to remove ConstString, I am
introducing a new struct wrapping RegisterSet that is responsible for
the storage and lifetime of the underlying RegisterSet strings.
DeltaFile
+34-1lldb/include/lldb/Target/DynamicRegisterInfo.h
+10-11lldb/source/Target/DynamicRegisterInfo.cpp
+44-122 files

LLVM/project 05f0bf0 — llvm/lib/Target/Mips MipsSubtarget.cpp MipsSubtarget.h

Mips: Remove redundant Triple copy from the subtarget (#226528)

MCSubtargetInfo already stores the target triple, so MipsSubtarget's own
copy is unnecessary.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+3-5llvm/lib/Target/Mips/MipsSubtarget.h
+1-1llvm/lib/Target/Mips/MipsSubtarget.cpp
+4-62 files

LLVM/project 363b079 — llvm/lib/Transforms/Utils SCCPSolver.cpp, llvm/test/Transforms/SCCP freeze-struct.ll

[SCCP] Support structure in freeze
DeltaFile
+125-0llvm/test/Transforms/SCCP/freeze-struct.ll
+16-15llvm/lib/Transforms/Utils/SCCPSolver.cpp
+141-152 files

LLVM/project 092ff97 — llvm/docs/GlobalISel IRTranslator.md, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[GlobalISel] Translate byte to ptr bitcasts to `G_INTTOPTR`/`G_PTRTOINT`
DeltaFile
+137-3llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
+16-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+6-4llvm/docs/GlobalISel/IRTranslator.md
+159-173 files

LLVM/project d3efda8 — llvm/lib/IR IRBuilder.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

Revert "[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)"
DeltaFile
+0-49llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+0-18llvm/unittests/IR/IRBuilderTest.cpp
+2-6llvm/lib/IR/IRBuilder.cpp
+2-733 files

LLVM/project e6d86ac — llvm/lib/Transforms/Utils SCCPSolver.cpp, llvm/test/Transforms/SCCP freeze-struct.ll

[SCCP] Support structure in freeze
DeltaFile
+141-0llvm/test/Transforms/SCCP/freeze-struct.ll
+16-15llvm/lib/Transforms/Utils/SCCPSolver.cpp
+157-152 files

LLVM/project 3621db6 — clang/docs ReleaseNotes.md, clang/lib/Sema SemaOpenMP.cpp

[Clang][OpenMP] Fix crash on `_BitInt` loop bounds and counters in loop analysis (#226464)

Fixes #140074

When building the iteration count of an OpenMP loop, Sema derives a few
integer types from bit widths, e.g. to promote the upper bound to an
unsigned type as wide as the wider bound so that `upper - lower` cannot
overflow. Those types came from `ASTContext::getIntTypeForBitwidth`,
which only knows the standard integer widths and returns a null type for
anything else. With a bound or loop counter of type `_BitInt(931)` the
request was for a 960-bit type, the result was null, and it went
straight into `PerformImplicitConversion`, which asserted. The
`collapse(2)` in the reduced reproducer is incidental; a plain `#pragma
omp for` on the same loop crashes the same way.

The loop analysis now goes through a small helper that asks for the
standard type first and otherwise builds the `_BitInt` type of that
width and signedness with `ASTContext::getBitIntType`. It is used at the
three places that derive a type from a loop width: the upper-bound

    [4 lines not shown]
DeltaFile
+46-0clang/test/OpenMP/for_loop_bitint_messages.c
+15-4clang/lib/Sema/SemaOpenMP.cpp
+2-0clang/docs/ReleaseNotes.md
+63-43 files

LLVM/project 07aec21 — llvm/lib/Target/AMDGPU SIPostRA16BitMovFolding.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.image.sample.a16.dim.ll amdgcn.bitcast.1024bit.ll

[AMDGPU] merge 16bit mov pairs in post-RA peephole  (#208625)

Address https://github.com/llvm/llvm-project/issues/207011. Add 5
patterns to merge 16bit mov pairs.

Since we hoist instruction which might cross the waitcnt boundary,
insert a new pass before waitcnt for this transformation

Co-Authored-By: Claude
DeltaFile
+478-979llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
+411-0llvm/test/CodeGen/AMDGPU/si-post-ra-merge-v-mov-b16.mir
+363-0llvm/lib/Target/AMDGPU/SIPostRA16BitMovFolding.cpp
+72-167llvm/test/CodeGen/AMDGPU/vector_shuffle.packed.ll
+43-59llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+21-42llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.a16.dim.ll
+1,388-1,24730 files not shown
+1,545-1,47336 files

LLVM/project 2ee7dbf — llvm/lib/Target/AMDGPU GCNSubtarget.h AMDGPU.td, llvm/test/CodeGen/AMDGPU coexec-sched-flavor-classification.mir

[AMDGPU] Make GFX1250VALUBlockingCycles a feature.

Included (intentional) behavior change: gfx1251 (w/ FullRate64Ops) does not have
GFX1250VALUBlockingCycles feature --- table is only partially usable for gfx1251.
DeltaFile
+8-0llvm/lib/Target/AMDGPU/AMDGPU.td
+0-4llvm/lib/Target/AMDGPU/GCNSubtarget.h
+3-0llvm/test/CodeGen/AMDGPU/coexec-sched-flavor-classification.mir
+11-43 files

LLVM/project 1841b8c — llvm/lib/IR IRBuilder.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

Revert "[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)"
DeltaFile
+0-49llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+0-18llvm/unittests/IR/IRBuilderTest.cpp
+2-6llvm/lib/IR/IRBuilder.cpp
+2-733 files

LLVM/project 31732d2 — llvm/docs/GlobalISel IRTranslator.md, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[GlobalISel] Translate byte to ptr bitcasts to `G_INTTOPTR`/`G_PTRTOINT`
DeltaFile
+137-3llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
+15-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+5-4llvm/docs/GlobalISel/IRTranslator.md
+157-173 files

LLVM/project b3ed324 — lld/test/Unit lit.cfg.py, lld/unittests/AsLibELF CMakeLists.txt OutputStream.cpp

[lld][test] Use LLVM helpers for input file discovery (#220404)

This was a suggestion on #220340 to avoid the custom env var handling
and use the `getInputFileDirectory` helper from the LLVM support library
DeltaFile
+12-21lld/unittests/AsLibELF/ROCm.cpp
+6-3lld/unittests/AsLibELF/OutputStream.cpp
+0-4lld/test/Unit/lit.cfg.py
+2-1lld/unittests/AsLibELF/CMakeLists.txt
+20-294 files

LLVM/project 9340033 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPMemoryUtils.cpp SLPCompatibilityAnalysis.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+813-943llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+23-27llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+16-16llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPShuffleAnalysis.h
+30-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+10-14llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
+3-3llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPMemoryUtils.cpp
+895-1,0031 files not shown
+898-1,0067 files

LLVM/project f2b3ba3 — mlir/test/Integration/Dialect/XeGPU/WG simple_mxfp_gemm.mlir simple_gemm_bf16.mlir

[MLIR][XeGPU] Add MXFP fp8 WG GEMM tests and use shared input set (#225944)

Adds four workgroup-level tests, updates two and renames one, so that
seven tests covering bf16, mx-fp4 and mx-fp8 exercise the same
arithmetic on the same operand values and check against the same
expected result.

1. simple_mxfp_gemm -> simple_mxfp_gemm_F4 - renamed, for consistency
with the F4/F8 suffixes used by the quantize and dequantize tests

2. (new) simple_gemm_bf16 - non-quantized bf16 GEMM at the MXFP problem
size, as the unquantized comparison point, and where the shared input
set is documented
3. (new) simple_mxfp_gemm_F8 - f8E5M2 operands with f8E8M0FNU scales
4. (new) simple_mxfp_gemm_dequantizeB_F8                 
5. (new) simple_mxfp_gemm_quantizeA_F8 - fp8 counterparts of the
existing fp4 tests
6. simple_mxfp_gemm_dequantizeB_F4 and simple_mxfp_gemm_quantizeA_F4 are
updated in place.

    [46 lines not shown]
DeltaFile
+400-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_F4.mlir
+374-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_quantizeA_F8.mlir
+350-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_F8.mlir
+335-0mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_dequantizeB_F8.mlir
+262-0mlir/test/Integration/Dialect/XeGPU/WG/simple_gemm_bf16.mlir
+0-206mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm.mlir
+1,721-2062 files not shown
+2,046-2528 files

LLVM/project 774b452 — llvm/include/llvm/Analysis TargetTransformInfo.h, llvm/include/llvm/CodeGen BasicTTIImpl.h

[Analysis][RISCV] More accurately estimate the cost of strided vector loads (#175135)

For small constant strides, attempt to predict the amount of coalescing
that will be done by the target machine to give a better cost estimate.

Currently, strided loads/stores are costed as having a cost of 1 per
element (i.e. being equivalent to scalar loads/stores).

---------

Co-authored-by: Luke Lau <luke_lau at icloud.com>
DeltaFile
+37-0llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
+23-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+14-6llvm/include/llvm/Analysis/TargetTransformInfo.h
+8-0llvm/lib/Target/RISCV/RISCVSubtarget.h
+5-2llvm/include/llvm/CodeGen/BasicTTIImpl.h
+4-1llvm/lib/Target/RISCV/RISCVProcessors.td
+91-96 files

LLVM/project 033bd5f — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 sve-ldst.ll masked_ldst.ll

Revert "[AArch64][CostModel] Consider some nxv1 operations as legal (#214471)"

This reverts commit 3897817145ffa3204e2593cb0b26c535724221c2.
DeltaFile
+41-22llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll
+9-48llvm/test/CodeGen/AArch64/sve-int-arith.ll
+20-31llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+4-4llvm/test/Analysis/CostModel/AArch64/sve-ldst.ll
+3-3llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
+6-0llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll
+83-1084 files not shown
+89-11410 files

LLVM/project 23e12c9 — clang/include/clang/CIR/Dialect/IR CIROps.td CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenBuilder.h

[CIR] Added fast-math flags to LLVM intrinsic calls (#224899)

Added fast-math flags attribute to CIR which cir.call_llvm_intrinsic now
carries through DirectToLLVM lowering. CIR now preserves fast-math flags
such as reassoc when lowering to llvm.call_intrinsic.

Added test for the same.
DeltaFile
+34-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+25-1clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+19-0clang/test/CIR/Lowering/call-llvm-intrinsic.cir
+11-0clang/lib/CIR/CodeGen/CIRGenBuilder.h
+7-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+8-0clang/test/CIR/IR/enum-attrs.cir
+104-36 files

LLVM/project 746fcb8 — llvm/lib/Target/Mips MipsSubtarget.cpp MipsSubtarget.h

Mips: Remove redundant Triple copy from the subtarget

MCSubtargetInfo already stores the target triple, so MipsSubtarget's own
copy is unnecessary.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+3-5llvm/lib/Target/Mips/MipsSubtarget.h
+1-1llvm/lib/Target/Mips/MipsSubtarget.cpp
+4-62 files

LLVM/project 6ec87e7 — utils/bazel/llvm-project-overlay/lldb BUILD.bazel

[Bazel] Add Telemetry dependency to lldb-dap (#226526)

Fixes lldb-dap bazel layering failure introduced in commit 1cc5657c4ff6,
where LLDBUtils.h includes llvm/Telemetry/Telemetry.h.
DeltaFile
+1-0utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+1-01 files

LLVM/project bff7b75 — llvm/test/Instrumentation/MemorySanitizer/AArch64 arm64-vmax.ll

[msan] Update intrinsic list in arm64-vmax.ll (NFC) (#226387)

The intrinsics llvm.aarch64.neon.{u,s}{min,max} were removed in
0ce1b5f91add535d1e8b910ee90c178e054c65eb, remove the mentions of them in
the test file as per the review comment in #225339.
DeltaFile
+0-4llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vmax.ll
+0-41 files

LLVM/project 1f9d3b2 —

[NFC][PGOProfile] Inline icall annotation proftext test (#226324)
DeltaFile
+0-00 files

LLVM/project 457b51b — llvm/lib/IR IRBuilder.cpp, llvm/test/CodeGen/AMDGPU promote-alloca-byte-ptr-cast.ll

Revert "[IRBuilder] Handle byte types in CreateBitPreservingCastChain (#209557)"

This reverts commit 65e2a60f238e1792487a94232f6dfe2e63c4ea9f.

Byte <-> pointer bitcasts are valid IR and preserve provenance, which the
inttoptr/ptrtoint round trip drops. The MachineVerifier failure it worked
around is fixed in the IRTranslator by the previous commit.
DeltaFile
+0-49llvm/test/CodeGen/AMDGPU/promote-alloca-byte-ptr-cast.ll
+0-18llvm/unittests/IR/IRBuilderTest.cpp
+2-6llvm/lib/IR/IRBuilder.cpp
+2-733 files

LLVM/project 378ceb3 — clang/lib/CodeGen/TargetBuiltins RISCV.cpp, clang/lib/Headers riscv_packed_simd.h

[RISCV][P-Ext] Add builtins and IR intrinsics for packed shifts. (#225968)

The packed shift instructions use 5-bit shift amounts regardless of
element width. The C intrinsic should match this which means we can't
use C shift operators to implement them.

Rename RISCVISD::PSHL to RISCVISD::PSLL.
DeltaFile
+120-272clang/test/CodeGen/RISCV/rvp-intrinsics.c
+144-18llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+58-4llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+22-35clang/lib/Headers/riscv_packed_simd.h
+37-0clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
+15-15llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+396-3443 files not shown
+435-3479 files

LLVM/project f1129f3 — llvm/test/Transforms/PGOProfile indirect_call_annotation.ll, llvm/test/Transforms/PGOProfile/Inputs indirect_call.proftext

[NFC][PGOProfile] Inline icall annotation proftext test (#226324)
DeltaFile
+47-2llvm/test/Transforms/PGOProfile/indirect_call_annotation.ll
+0-43llvm/test/Transforms/PGOProfile/Inputs/indirect_call.proftext
+47-452 files

LLVM/project 44f262e — clang/test/Analysis/Scalable/ssaf-src-edit-merge two-input-conflict.test two-input-conflict-sarif.test

[test][ssaf][AIX] Fix sed -i portability for AIX (#226293)

AIX's sed does not support the `-i` flag, causing the tests added in
https://github.com/llvm/llvm-project/pull/216183 to fail on AIX. This
patch updates the tests to use a POSIX-compliant redirect instead.
DeltaFile
+4-6clang/test/Analysis/Scalable/ssaf-src-edit-merge/two-conflicts-different-offsets-sarif.test
+3-5clang/test/Analysis/Scalable/ssaf-src-edit-merge/three-input-conflict-sarif.test
+3-5clang/test/Analysis/Scalable/ssaf-src-edit-merge/three-input-all-conflict.test
+3-5clang/test/Analysis/Scalable/ssaf-src-edit-merge/conflict-preserves-unrelated-zero-length-insert.test
+2-3clang/test/Analysis/Scalable/ssaf-src-edit-merge/two-input-conflict.test
+2-3clang/test/Analysis/Scalable/ssaf-src-edit-merge/two-input-conflict-sarif.test
+17-2714 files not shown
+39-6320 files

LLVM/project 9068aed — llvm/test/Transforms/LoopVectorize early-exit-live-out-extract-lane.ll

[LV] Fix early exit tests after #223643. NFC (#226521)
DeltaFile
+4-4llvm/test/Transforms/LoopVectorize/early-exit-live-out-extract-lane.ll
+4-41 files

LLVM/project 2e5d81e — llvm/docs/GlobalISel IRTranslator.md, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[GlobalISel] Handle vector byte to pointer bitcasts in IRTranslator
DeltaFile
+228-0llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
+20-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+6-4llvm/docs/GlobalISel/IRTranslator.md
+254-143 files

LLVM/project 73fc71b — clang/unittests/Lex LexerTest.cpp

[clang][test] Fix lifetimes of HS/PP options (#225885)

PR #133467 changed how lifetimes work for `PreprocessorOptions`. In
LexerTest.cpp, the lifetimes were set up incorrectly, leading to
potential use-after-free crashes. This PR fixes that by expanding the
lifetime of both `PreprocessorOptions` and `HeaderSearchOptions`.
DeltaFile
+64-66clang/unittests/Lex/LexerTest.cpp
+64-661 files