LLVM/project b455aa6llvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch crc.ll

[LoongArch] Propagate demanded bits for CRC[C].W.{B,H}.W

CRC byte and halfword instructions only use the low 8 or 16 bits of
their data operand. Propagate these demanded-bit requirements through
SimplifyDemandedBitsForTargetNode() so redundant masking operations can
be removed during DAG combining.
DeltaFile
+21-4llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+0-4llvm/test/CodeGen/LoongArch/crc.ll
+21-82 files

LLVM/project 31f998dllvm/test/CodeGen/LoongArch crc.ll

[LoongArch][NFC] Add demanded bits tests for CRC[C].W.{B,H}.W (#203200)
DeltaFile
+50-0llvm/test/CodeGen/LoongArch/crc.ll
+50-01 files

LLVM/project e79e056mlir/lib/Transforms/Utils CSE.cpp

[mlir][CSE] Remove the opsToErase container and immediately delete dead ops. (#203702)

This PR removes the `opsToErase` container and immediately erases dead
operations. Since dead ops are deleted on the fly, the value in the
`MemEffectsCache` map now correctly tracks the previous operation of
`toOp`. This change improves the storage efficiency of CSE. Furthermore,
it is part of https://github.com/llvm/llvm-project/pull/180556 and
substantially simplifies the implementation.
DeltaFile
+23-23mlir/lib/Transforms/Utils/CSE.cpp
+23-231 files

LLVM/project 303400flibclc/clc/lib/generic/math clc_sincos_helpers_fp64.inc

[libclc] Use __CLC_SCALAR instead of nonexistant __CLC_SCALAR1 for sin (#203807)

Summary:
This seems to be a typo? Every other case is guarded by `__CLC_SCALAR`
but this case had a `1` after it. Removing this improved performance on
sin/cos/tan to match the ROCm version.
DeltaFile
+1-1libclc/clc/lib/generic/math/clc_sincos_helpers_fp64.inc
+1-11 files

LLVM/project 8b6551elibclc/clc/lib/generic/math clc_acos.inc clc_atan.inc

[libclc] Use FMA for the pi reconstruction in acos / atan (#203804)

Summary:
This should recombine the split constant for this case. The performance
should be negligible for such large math functions, we get an extra add,
but in exchange the results should improve 1 ULP.

This was primarily done to match what AMD's math libraries do, with this
change we are byte-for-byte identical in output.
DeltaFile
+4-4libclc/clc/lib/generic/math/clc_acos.inc
+1-1libclc/clc/lib/generic/math/clc_atan.inc
+5-52 files

LLVM/project bf0ccb4llvm/lib/Passes PassBuilderPipelines.cpp, llvm/test/Other new-pm-lto-defaults.ll

[Passes] Invoke CGSCCOptimizerLateEP callbacks in LTO pipeline (#203262)

The CGSCCOptimizerLateEP extension point was not being invoked in the
LTO pipeline. Right now only AMDGPU registers any passes during this
callback, but it was a real source of delta between the LTO and default
pipelines when targeting AMDGPU. This doesn't seem to be an intentional
omission given that it is instantiated in thinLTO as well. Just add it.
DeltaFile
+4-0llvm/test/Other/new-pm-lto-defaults.ll
+1-0llvm/lib/Passes/PassBuilderPipelines.cpp
+5-02 files

LLVM/project 375b70blibclc/clc/lib/amdgpu CMakeLists.txt, libclc/clc/lib/amdgpu/math clc_recip_fast.inc clc_recip_fast.cl

[libclc] Improve performance and precision of reciprocal functions (#203805)

Summary:
Small change to improve the performance and output of functions using
the reciprocol. This makes these functions *byte-for-byte* identical
with their OCML counterparts in ROCm.

Additionally ensure tanpi is correctly rounded to match ROCm.
DeltaFile
+16-0libclc/clc/lib/amdgpu/math/clc_recip_fast.inc
+14-0libclc/clc/lib/amdgpu/math/clc_recip_fast.cl
+2-0libclc/clc/lib/amdgpu/CMakeLists.txt
+1-0libclc/clc/lib/generic/CMakeLists.txt
+33-04 files

LLVM/project 19d343dllvm/test/CodeGen/X86/apx add.ll sub.ll

[X86][APX] Remove prefer-ndd-imm tuning (#203758)

It turns out NDD's immediate variants perform as good as non-NDD's on
real hardware. Verified both on CPU2017 and CPU2026, the geomean is
around 0 w/ and w/o this change. A few items get up and down due to the
side effect of register live range change caused by the NDD form. No
evidence shows this tuning has improvements or degradations even on
single items.

Assisted-by: Claude Sonnet 4.6
DeltaFile
+38-290llvm/test/CodeGen/X86/apx/add.ll
+37-277llvm/test/CodeGen/X86/apx/sub.ll
+18-193llvm/test/CodeGen/X86/apx/or.ll
+18-185llvm/test/CodeGen/X86/apx/xor.ll
+18-172llvm/test/CodeGen/X86/apx/and.ll
+1-117llvm/test/CodeGen/X86/apx/sbb.ll
+130-1,23422 files not shown
+192-1,48128 files

LLVM/project 1f9db95mlir/test/mlir-opt-repl test_cli_and_edge_cases.py, mlir/tools/mlir-opt-repl README.md

[mlir] mlir-opt-repl: add mcp-config command, fix readline on Windows

- 'mlir-opt-repl mcp-config' prints ready-to-paste Claude Code JSON
  with absolute paths resolved for the current installation
- Handle missing readline on Windows (graceful degradation)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+28-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/__main__.py
+14-0mlir/test/mlir-opt-repl/test_cli_and_edge_cases.py
+10-1mlir/tools/mlir-opt-repl/README.md
+52-13 files

LLVM/project 6966cf3llvm/docs LangRef.rst

[LangRef] Clarify the `nsz` semantic  for `{u,s}itofp` (#201557)

`nsz` has special semantic in `{u,s}itofp`, which falls into the "unless
otherwise mentioned" in `nsz` doc, this PR clarifies it in LangRef.
DeltaFile
+6-0llvm/docs/LangRef.rst
+6-01 files

LLVM/project 86d7405lldb/source/Symbol Symbol.cpp Symtab.cpp

[lldb] Add static asserts on Symbol size to DataFileCache (#203735)

DataFileCache is a serialization to disk of a Symtab - the symbol names
and array of Symbol objects - so if the contents of the Symbol object
change, the serialization may need to change as well, and we need to
bump the DataFileCache version number to avoid misparsing an older
format.

It's also a little too easy to change Symbol and not notice that
Symbol::Encode/Decode and Symtab::Encode/Decode need to be updated.

static_asserting the size of Symbol isn't perfect, but as long as we're
doing it in Symbol.h already to warn anyone increasing the size of this
object, I want to use the same technique to make sure people look at
these other sites that are tied to the contents.
DeltaFile
+10-0lldb/source/Symbol/Symbol.cpp
+9-0lldb/source/Symbol/Symtab.cpp
+19-02 files

LLVM/project 517081a.ci all_requirements.txt, mlir/test/mlir-opt-repl test_mcp.py test_repl.py

[mlir] Add mlir-opt-repl: interactive MLIR pass pipeline explorer and MCP server

A pip-installable Python package (mlir-opt-repl) that provides:
- An interactive terminal REPL for applying mlir-opt passes step by step,
  with history navigation, rewind, and colored unified/side-by-side diffs.
- An MCP (Model Context Protocol) server for use as a Claude Code tool,
  exposing the same functionality over JSON-RPC stdio.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+281-0mlir/test/mlir-opt-repl/test_mcp.py
+213-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+211-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+203-0mlir/test/mlir-opt-repl/test_repl.py
+201-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/mcp.py
+152-2.ci/all_requirements.txt
+1,261-211 files not shown
+1,884-217 files

LLVM/project 47a4da1mlir/test/mlir-opt-repl test_mcp.py test_cli_and_edge_cases.py, mlir/tools/mlir-opt-repl README.md

[mlir] mlir-opt-repl v2: save, bookmark, verify, pass-pipeline syntax, tab completion

New features:
- save: write current IR to a file
- bookmark: name history steps for easy rewind-by-name
- verify: run --verify-diagnostics on current IR
- pass-pipeline syntax: 'run builtin.module(canonicalize,cse)' works
- tab completion: commands and pass names auto-complete with Tab

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+140-33mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+134-0mlir/test/mlir-opt-repl/test_mcp.py
+96-8mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+101-3mlir/test/mlir-opt-repl/test_cli_and_edge_cases.py
+74-0mlir/test/mlir-opt-repl/test_repl.py
+38-16mlir/tools/mlir-opt-repl/README.md
+583-602 files not shown
+629-618 files

LLVM/project 492e4ef.ci all_requirements.txt, mlir/test/mlir-opt-repl test_mcp.py test_repl.py

[mlir] Add mlir-opt-repl: interactive MLIR pass pipeline explorer and MCP server

A pip-installable Python package (mlir-opt-repl) that provides:
- An interactive terminal REPL for applying mlir-opt passes step by step,
  with history navigation, rewind, and colored unified/side-by-side diffs.
- An MCP (Model Context Protocol) server for use as a Claude Code tool,
  exposing the same functionality over JSON-RPC stdio.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+281-0mlir/test/mlir-opt-repl/test_mcp.py
+211-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+210-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+203-0mlir/test/mlir-opt-repl/test_repl.py
+201-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/mcp.py
+152-2.ci/all_requirements.txt
+1,258-211 files not shown
+1,878-217 files

LLVM/project a085aebmlir/test/mlir-opt-repl test_mcp.py test_cli_and_edge_cases.py, mlir/tools/mlir-opt-repl README.md

[mlir] mlir-opt-repl v2: save, bookmark, verify, pass-pipeline syntax, tab completion

New features:
- save: write current IR to a file
- bookmark: name history steps for easy rewind-by-name
- verify: run --verify-diagnostics on current IR
- pass-pipeline syntax: 'run builtin.module(canonicalize,cse)' works
- tab completion: commands and pass names auto-complete with Tab

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+140-33mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+134-0mlir/test/mlir-opt-repl/test_mcp.py
+101-3mlir/test/mlir-opt-repl/test_cli_and_edge_cases.py
+96-8mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+74-0mlir/test/mlir-opt-repl/test_repl.py
+38-16mlir/tools/mlir-opt-repl/README.md
+583-602 files not shown
+629-618 files

LLVM/project 3ec99c4llvm/lib/Target/AMDGPU GCNSchedStrategy.cpp

Fix else condition

Change-Id: I4b625c495bef293816140ff1d979887a95ba07d0
DeltaFile
+2-2llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+2-21 files

LLVM/project ad4ac1amlir/test/mlir-opt-repl test_mcp.py test_repl.py, mlir/tools/mlir-opt-repl/src/mlir_opt_repl engine.py repl.py

[mlir] Add mlir-opt-repl: interactive MLIR pass pipeline explorer and MCP server

A pip-installable Python package (mlir-opt-repl) that provides:
- An interactive terminal REPL for applying mlir-opt passes step by step,
  with history navigation, rewind, and colored unified/side-by-side diffs.
- An MCP (Model Context Protocol) server for use as a Claude Code tool,
  exposing the same functionality over JSON-RPC stdio.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+281-0mlir/test/mlir-opt-repl/test_mcp.py
+211-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+210-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+203-0mlir/test/mlir-opt-repl/test_repl.py
+201-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/mcp.py
+150-0mlir/test/mlir-opt-repl/test_cli_and_edge_cases.py
+1,256-011 files not shown
+1,873-217 files

LLVM/project 435f713mlir/test/mlir-opt-repl test_mcp.py test_repl.py, mlir/tools/mlir-opt-repl/src/mlir_opt_repl engine.py repl.py

[mlir] Add mlir-opt-repl: interactive MLIR pass pipeline explorer and MCP server

A pip-installable Python package (mlir-opt-repl) that provides:
- An interactive terminal REPL for applying mlir-opt passes step by step,
  with history navigation, rewind, and colored unified/side-by-side diffs.
- An MCP (Model Context Protocol) server for use as a Claude Code tool,
  exposing the same functionality over JSON-RPC stdio.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+281-0mlir/test/mlir-opt-repl/test_mcp.py
+211-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+204-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+203-0mlir/test/mlir-opt-repl/test_repl.py
+201-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/mcp.py
+150-0mlir/test/mlir-opt-repl/test_cli_and_edge_cases.py
+1,250-011 files not shown
+1,857-217 files

LLVM/project 6b99cdc.ci all_requirements.txt, mlir/test/mlir-opt-repl test_mcp.py test_repl.py

[mlir] Add mlir-opt-repl: interactive MLIR pass pipeline explorer and MCP server

A pip-installable Python package (mlir-opt-repl) that provides:
- An interactive terminal REPL for applying mlir-opt passes step by step,
  with history navigation, rewind, and colored unified/side-by-side diffs.
- An MCP (Model Context Protocol) server for use as a Claude Code tool,
  exposing the same functionality over JSON-RPC stdio.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+281-0mlir/test/mlir-opt-repl/test_mcp.py
+200-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/mcp.py
+199-0mlir/test/mlir-opt-repl/test_repl.py
+198-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/repl.py
+198-0mlir/tools/mlir-opt-repl/src/mlir_opt_repl/engine.py
+139-2.ci/all_requirements.txt
+1,215-211 files not shown
+1,817-217 files

LLVM/project e6e6947mlir/lib/Dialect/LLVMIR/IR LLVMTypeSyntax.cpp

clang-format
DeltaFile
+3-2mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
+3-21 files

LLVM/project 49266famlir/include/mlir/Dialect/LLVMIR LLVMTypes.td, mlir/lib/Dialect/LLVMIR/IR LLVMTypes.cpp LLVMDialect.cpp

[mlir][LLVM] Add the `byte` type to the LLVM dialect

This PR ports the newly added `byte` type from LLVM IR to mlir's LLVM dialect.
The simplest motivation for the byte type is being able to implement `memcpy` in LLVM IR. This was previously not possible: Due to rules around conversions between integers and pointers (which e.g. implicitly happen during loads), partial-poisons and pointer provenance were not preserved.
No alterantive types to integers existed that one could use to have poison and provenance preserving SSA-values. The byte type solves exactly this issue.
Frontends are encouraged to use it when needed for better optimization capabilities.

Currently, the only operation that has changed semantics around `byte` is `bitcast`. Is now allows casting between `byte` and `ptr` (unlike integers and pointers).

Corresponding LLVM commit: https://github.com/llvm/llvm-project/commit/80f2ef70f592

Assisted by Claude & Gemini
DeltaFile
+57-0mlir/test/Dialect/LLVMIR/layout.mlir
+25-0mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.td
+23-1mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
+14-0mlir/test/Dialect/LLVMIR/roundtrip.mlir
+9-4mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+9-3mlir/lib/Target/LLVMIR/TypeToLLVM.cpp
+137-85 files not shown
+172-1111 files

LLVM/project cc61305llvm/lib/Target/X86 X86ISelLowering.cpp X86ISelLowering.h, llvm/test/Transforms/AtomicExpand/X86 expand-atomic-non-integer.ll

[X86] Remove shouldCastAtomicLoadInIR; use DAG combine instead (#199520)

Remove X86's shouldCastAtomicLoadInIR override that cast FP atomic loads
to integer at the IR level. Instead, handle this in a pre-legalize DAG
combine (combineAtomicLoad) that rewrites FP/FP-vector atomic loads to
integer atomic loads plus a bitcast.

This and #199310, which adds the necessary cmpxchg support for
non-integer atomic loads in AtomicExpand, are a response to
https://github.com/llvm/llvm-project/pull/148899 for `atomic_vec4_float`
of `atomic-load-store.ll`.

Stacked above #201303.
DeltaFile
+25-7llvm/lib/Target/X86/X86ISelLowering.cpp
+2-4llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
+0-2llvm/lib/Target/X86/X86ISelLowering.h
+27-133 files

LLVM/project 71f69c1llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[LV] Use ResumeForEpilogue for header phi resume in epilogue plan (NFC) (#203786)

Pass the ResumeForEpilogue VPInstructions created by
preparePlanForMainVectorLoop into preparePlanForEpilogueVectorLoop and
get the resume IR from ResumeForEpilogue::getUnderlyingValue()
DeltaFile
+15-9llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+15-91 files

LLVM/project ad71198llvm/test/Transforms/LoopVectorize outer_loop_contiguous.ll

[LV] Add outer-loop tests for continuous access analysis. (NFC) (#203789)

Add outer loop tests with different strided accesses.
DeltaFile
+288-0llvm/test/Transforms/LoopVectorize/outer_loop_contiguous.ll
+288-01 files

LLVM/project f7e53fcoffload/liboffload/src OffloadImpl.cpp

[offload] Fix olMemcpy error message typo (#197273)
DeltaFile
+1-1offload/liboffload/src/OffloadImpl.cpp
+1-11 files

LLVM/project 80b1dddllvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize predicatedinst-loop-invariant.ll

[LV] Drop the mask of a predicated store masked by the header mask. (#201676)

Drop the mask of a predicated store masked by the header mask (which is
guaranteed to be true at least for the first lane) and both the stored
value and the address are uniform across VF and UF.

An similar version for loads was included in
https://github.com/llvm/llvm-project/pull/196630, but restricted the
uniform-across-vfs-and-ufs did not have impact in practice.

For stores, this results in some improvements after
https://github.com/llvm/llvm-project/pull/196632.

PR: https://github.com/llvm/llvm-project/pull/201676
DeltaFile
+59-49llvm/test/Transforms/LoopVectorize/X86/vectorize-interleaved-accesses-gap.ll
+49-39llvm/test/Transforms/LoopVectorize/SystemZ/pr47665.ll
+17-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+0-16llvm/test/Transforms/LoopVectorize/predicatedinst-loop-invariant.ll
+125-1044 files

LLVM/project 3df63e9bolt/include/bolt/Rewrite RewriteInstance.h, bolt/lib/Rewrite RewriteInstance.cpp

[BOLT] Zero alignment padding when reusing old text section (#202375)

With --use-old-text, the output starts as a byte-for-byte copy of the
input. Alignment padding between sections could retain stale data from
the original binary. Zero the padding so the result matches writing
sections to new file offsets.
DeltaFile
+46-0bolt/test/AArch64/use-old-text-zero-padding.c
+44-0bolt/lib/Rewrite/RewriteInstance.cpp
+5-0bolt/include/bolt/Rewrite/RewriteInstance.h
+95-03 files

LLVM/project 3e11b3bcompiler-rt/test/fuzzer fork_corpus_groups.test fork.test

[Fuzzer] Bump max RSS in fork tests (#203688)

These became flaky on at least one buildbot after enabling the internal
shell by default:
1. https://lab.llvm.org/buildbot/#/builders/174/builds/36874
2. https://lab.llvm.org/buildbot/#/builders/174/builds/36876

Try bumping the max RSS to see if that helps.
DeltaFile
+1-1compiler-rt/test/fuzzer/fork_corpus_groups.test
+1-1compiler-rt/test/fuzzer/fork.test
+2-22 files

LLVM/project a53a62d.github/workflows/containers/github-action-ci-tooling Dockerfile

[Github] Remove unnecessary packages from github-automation container (#203358)

This cuts the container size from 654 MB to 229 MB. This is mainly due
to removing the python3-pip package which was pulling in some big
depedencies like gcc.

A smaller container will be faster to download which will speed up the
workflow runs, but also, having less packages means smaller attack
surface for the container.
DeltaFile
+7-5.github/workflows/containers/github-action-ci-tooling/Dockerfile
+7-51 files

LLVM/project 6bda63cllvm/test/tools/llvm-cov gap-region-line-coverage.test, llvm/test/tools/llvm-cov/Inputs/gap-region-quirk gap-quirk.yaml gap-quirk.proftext

[llvm-cov] Replace binary test blobs with text formats

Replace .covmapping and .profdata binary blobs with .yaml (obj2yaml)
and .proftext respectively. The test now uses yaml2obj and
llvm-profdata merge to produce inputs at test time.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
DeltaFile
+57-0llvm/test/tools/llvm-cov/Inputs/gap-region-quirk/gap-quirk.yaml
+7-18llvm/test/tools/llvm-cov/gap-region-line-coverage.test
+16-0llvm/test/tools/llvm-cov/Inputs/gap-region-quirk/gap-quirk.proftext
+0-0llvm/test/tools/llvm-cov/Inputs/gap-region-quirk/gap-quirk.profdata
+0-0llvm/test/tools/llvm-cov/Inputs/gap-region-quirk/gap-quirk.covmapping
+80-185 files