LLVM/project fb35b3eclang/lib/Driver OffloadBundler.cpp, clang/test/Driver clang-offload-bundler-multi-compress.c

Merge branch 'main' into users/kasuga-fj/da-consolidate-acc-gcd
DeltaFile
+451-0llvm/test/Transforms/LoopVectorize/select-cmp-blend-chain.ll
+0-323llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
+200-116clang/lib/Driver/OffloadBundler.cpp
+272-0llvm/test/Transforms/LoopVectorize/VPlan/constant-fold.ll
+187-0clang/test/Driver/clang-offload-bundler-multi-compress.c
+0-183compiler-rt/lib/asan/asan_poisoning.cpp
+1,110-62242 files not shown
+1,480-1,08248 files

LLVM/project 9b64fa9llvm/lib/Analysis DependenceAnalysis.cpp

address reivew comment
DeltaFile
+0-1llvm/lib/Analysis/DependenceAnalysis.cpp
+0-11 files

LLVM/project 3ad6af9mlir/docs Tokens.md LangRef.md

address comments: symbols / IsolatedFromAbove
DeltaFile
+6-1mlir/docs/Tokens.md
+1-2mlir/docs/LangRef.md
+7-32 files

LLVM/project 955ba23mlir/docs Tokens.md

Update mlir/docs/Tokens.md

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
DeltaFile
+2-1mlir/docs/Tokens.md
+2-11 files

LLVM/project fc3e151mlir/include/mlir/IR BuiltinOps.td

drop unrealized_conversion_cast change
DeltaFile
+3-3mlir/include/mlir/IR/BuiltinOps.td
+3-31 files

LLVM/project 69f9322mlir/docs Tokens.md LangRef.md

move structural contract to LangRef
DeltaFile
+20-40mlir/docs/Tokens.md
+27-6mlir/docs/LangRef.md
+47-462 files

LLVM/project 972be7emlir/docs Tokens.md

call out IsolatedFromAbove restriction
DeltaFile
+4-0mlir/docs/Tokens.md
+4-01 files

LLVM/project 95d4e8dmlir/test/Dialect/Builtin/Bytecode builtin_fixed_0.mlirbc

regenerate bytecode
DeltaFile
+0-0mlir/test/Dialect/Builtin/Bytecode/builtin_fixed_0.mlirbc
+0-01 files

LLVM/project 183f61amlir/include/mlir/Dialect/LLVMIR LLVMIntrinsicOps.td LLVMOps.td, mlir/lib/Dialect/LLVMIR/IR LLVMTypeSyntax.cpp LLVMTypes.cpp

remove LLVM token type
DeltaFile
+23-37mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
+15-10mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+11-11mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
+9-9mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+7-7mlir/test/Target/LLVMIR/Import/intrinsic.ll
+6-7mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+71-8112 files not shown
+94-10918 files

LLVM/project 6cca037mlir/docs Tokens.md, mlir/docs/Traits _index.md

[mlir][IR] Require token producer and consumer traits

Add marker traits for operations that intentionally produce or consume the
builtin token type. The verifier now rejects token results without
TokenProducerTrait, token operands without TokenConsumerTrait, token entry
block arguments whose parent op does not produce tokens, and token block
arguments outside entry blocks.

Extend the Test dialect token ops to cover valid opt-in cases and each
verifier rejection path.

Assisted-by: Codex
DeltaFile
+100-2mlir/test/IR/token-type.mlir
+93-3mlir/lib/IR/Verifier.cpp
+28-3mlir/test/lib/Dialect/Test/TestOps.td
+14-7mlir/docs/Tokens.md
+14-0mlir/docs/Traits/_index.md
+12-0mlir/include/mlir/IR/OpDefinition.h
+261-152 files not shown
+268-168 files

LLVM/project 50fded2mlir/docs Tokens.md

Update mlir/docs/Tokens.md

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
DeltaFile
+2-0mlir/docs/Tokens.md
+2-01 files

LLVM/project 8c7c6a9mlir/docs/Dialects LLVM.md, mlir/lib/IR Verifier.cpp

address comments
DeltaFile
+5-9mlir/lib/IR/Verifier.cpp
+1-2mlir/docs/Dialects/LLVM.md
+6-112 files

LLVM/project 8882b47mlir/docs Tokens.md

address comments
DeltaFile
+2-3mlir/docs/Tokens.md
+2-31 files

LLVM/project 4e47ed1mlir/docs Tokens.md LangRef.md

rewrite design contract
DeltaFile
+13-9mlir/docs/Tokens.md
+9-2mlir/docs/LangRef.md
+22-112 files

LLVM/project 01a0f88mlir/docs Tokens.md LangRef.md, mlir/include/mlir/IR CommonTypeConstraints.td

address comments
DeltaFile
+17-21mlir/docs/Tokens.md
+2-17mlir/test/IR/token-type.mlir
+1-8mlir/include/mlir/IR/CommonTypeConstraints.td
+0-7mlir/test/lib/Dialect/Test/TestOps.td
+2-1mlir/docs/LangRef.md
+22-545 files

LLVM/project dcd3cabmlir/docs Tokens.md, mlir/lib/Conversion/AsyncToLLVM AsyncToLLVM.cpp

[mlir][IR] Add builtin `TokenTypeInterface`

type instead of type interface

add bytecode
DeltaFile
+104-0mlir/docs/Tokens.md
+36-24mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
+60-0mlir/test/IR/token-type.mlir
+18-17mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
+30-0mlir/test/lib/Dialect/Test/TestOps.td
+12-12mlir/test/Dialect/SparseTensor/invalid.mlir
+260-5324 files not shown
+365-9530 files

LLVM/project 3db8692mlir/lib/Dialect/Async/Transforms AsyncToAsyncRuntime.cpp, mlir/test/Dialect/Async async-to-async-runtime.mlir

[mlir][async] Lazily create the coroutine destroy-cleanup block

`setupCoroMachinery` previously emitted a `cleanupForDestroy` block
unconditionally, alongside the normal `cleanup` block. That block is
only ever used as the "destroy" successor of an `async.coro.suspend`,
so for coroutines that never suspend (e.g. an `async.func` whose body
contains no `async.await`) it ended up unreachable in the lowered CFG.

Make `cleanupForDestroy` mirror the existing `setError` pattern and
materialize it lazily via a new `setupCleanupForDestroyBlock` helper,
called only from the two places (`outlineExecuteOp` and the
`async.await` lowering) that actually wire it up. Store the coroutine
id on `CoroMachinery` so the helper can rebuild the block contents
without keeping the original `async.coro.id` op around.

Assisted-by: Opus 4.7
DeltaFile
+33-15mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
+33-0mlir/test/Dialect/Async/async-to-async-runtime.mlir
+66-152 files

LLVM/project 97e7ee2llvm/lib/ProfileData InstrProf.cpp, llvm/test/Transforms/PGOProfile indirect-call-vp-zeros.ll

[InstrProf] Do not emit metadata for zero values with zero counts (#199380)

If we have a indirect call site with a profile that has VP information
for said callsite that only contains zero values with zero counts, we
would start to emit invalid profile information after
1d146967d51ba76b8379d9e12961aa23e5745701. VP metadata in this case is at
best redundant with BFI. So we restrict metadata emission to only if we
have a sufficient number of values for the VP metadata to be valid.
DeltaFile
+16-0llvm/test/Transforms/PGOProfile/Inputs/indirect-call-vp-zeros.ll
+11-0llvm/test/Transforms/PGOProfile/indirect-call-vp-zeros.ll
+5-1llvm/lib/ProfileData/InstrProf.cpp
+32-13 files

LLVM/project 142af64mlir/docs Tokens.md

Update mlir/docs/Tokens.md

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
DeltaFile
+2-1mlir/docs/Tokens.md
+2-11 files

LLVM/project 1646898mlir/lib/Dialect/Async/Transforms AsyncToAsyncRuntime.cpp, mlir/test/Dialect/Async async-to-async-runtime.mlir

[mlir][async] Lazily create the coroutine destroy-cleanup block

`setupCoroMachinery` previously emitted a `cleanupForDestroy` block
unconditionally, alongside the normal `cleanup` block. That block is
only ever used as the "destroy" successor of an `async.coro.suspend`,
so for coroutines that never suspend (e.g. an `async.func` whose body
contains no `async.await`) it ended up unreachable in the lowered CFG.

Make `cleanupForDestroy` mirror the existing `setError` pattern and
materialize it lazily via a new `setupCleanupForDestroyBlock` helper,
called only from the two places (`outlineExecuteOp` and the
`async.await` lowering) that actually wire it up. Store the coroutine
id on `CoroMachinery` so the helper can rebuild the block contents
without keeping the original `async.coro.id` op around.

Assisted-by: Opus 4.7
DeltaFile
+33-15mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
+33-0mlir/test/Dialect/Async/async-to-async-runtime.mlir
+66-152 files

LLVM/project 1179d6dmlir/lib/Dialect/Async/Transforms AsyncToAsyncRuntime.cpp, mlir/test/Dialect/Async async-to-async-runtime.mlir

[mlir][async] Lazily create the coroutine destroy-cleanup block

`setupCoroMachinery` previously emitted a `cleanupForDestroy` block
unconditionally, alongside the normal `cleanup` block. That block is
only ever used as the "destroy" successor of an `async.coro.suspend`,
so for coroutines that never suspend (e.g. an `async.func` whose body
contains no `async.await`) it ended up unreachable in the lowered CFG.

Make `cleanupForDestroy` mirror the existing `setError` pattern and
materialize it lazily via a new `setupCleanupForDestroyBlock` helper,
called only from the two places (`outlineExecuteOp` and the
`async.await` lowering) that actually wire it up. Store the coroutine
id on `CoroMachinery` so the helper can rebuild the block contents
without keeping the original `async.coro.id` op around.

Assisted-by: Opus 4.7
DeltaFile
+37-15mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
+33-0mlir/test/Dialect/Async/async-to-async-runtime.mlir
+70-152 files

LLVM/project 269719bcompiler-rt/include/sanitizer common_interface_defs.h, compiler-rt/lib/asan asan_poisoning.cpp asan_errors.h

Revert "[compiler-rt][ASan] Add function copying annotations (#91702)" (#194204)

This reverts commit c76045d9bf3bd1c7a381dc85d1db63a38fd69aa4.

It does not look like this has been used anywhere since it was
implemented. I see no uses of it in LLVM, anywhere in our internal
monorepo, or across the entirety of Github outside of other copies of
LLVM tests. Given that, remove it. The intended use case around SSO ASan
string annotations is also likely to be significantly reworked soon.
DeltaFile
+0-183compiler-rt/lib/asan/asan_poisoning.cpp
+0-172compiler-rt/test/asan/TestCases/copy_container_annotations.cpp
+0-45compiler-rt/include/sanitizer/common_interface_defs.h
+0-19compiler-rt/lib/asan/asan_errors.h
+0-14compiler-rt/lib/asan/asan_errors.cpp
+0-10compiler-rt/lib/asan/asan_report.cpp
+0-4433 files not shown
+1-4539 files

LLVM/project 0b6a1efllvm/utils/lit/tests shtest-ulimit-nondarwin.py, llvm/utils/lit/tests/Inputs/shtest-ulimit print_limits.py

[lit] Normalize RLIM_INFINITY to "infinity" in print_limits.py for Python 3.15+ (#190953)

Python 3.15 changed resource.getrlimit() to return the platform's
maximum value (e.g., 18446744073709551615 on 64-bit systems) instead of
-1 for RLIM_INFINITY. This breaks lit tests that expect -1 for unlimited
resource limits.

This patch normalizes the return value to "infinity" when it equals
RLIM_INFINITY to maintain compatibility with existing tests across all
Python versions.

Fixes test failure: shtest-ulimit-nondarwin.py
Expected: RLIMIT_FSIZE=-1
Got: RLIMIT_FSIZE=18446744073709551615

Reference:
https://github.com/python/cpython/commit/0324c726dea702282a0300225e989b19ae23b759
Reference: https://bugzilla.redhat.com/show_bug.cgi?id=2448969


    [7 lines not shown]
DeltaFile
+13-4llvm/utils/lit/tests/Inputs/shtest-ulimit/print_limits.py
+1-1llvm/utils/lit/tests/shtest-ulimit-nondarwin.py
+14-52 files

LLVM/project 01ce8d6llvm/test/tools/llvm-profdata sample-nametable.test

[ProfData] Remove HWAsan exclusion (#199582)

This passes locally for me with HWAsan enabled on a AArch64 machine, so
it seems like this might have been fixed since adding the opt-out.
DeltaFile
+0-6llvm/test/tools/llvm-profdata/sample-nametable.test
+0-61 files

LLVM/project 884e828llvm/lib/Target/AMDGPU AMDGPUInsertDelayAlu.cpp AMDGPULowerExecSync.cpp

[AMDGPU] Don't assume non-erased DenseMap entries remain valid after erase. NFC (#199578)

In preparation for DenseMap change that relocates surviving entries on
erase, replace erase-while-iterating with remove_if.
DeltaFile
+4-13llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp
+7-10llvm/lib/Target/AMDGPU/AMDGPULowerExecSync.cpp
+2-8llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+4-6llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
+17-374 files

LLVM/project ff2eac1llvm/lib/Target/Hexagon HexagonGenInsert.cpp

[Hexagon] Simplify with DenseMap::remove_if. NFC (#199576)
DeltaFile
+4-19llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
+4-191 files

LLVM/project 1ed7260llvm/lib/Target/NVPTX NVPTXGenericToNVVM.cpp

[NVPTX] Don't assume non-erased DenseMap entries remain valid after erase. NFC (#199575)

GenericToNVVM erases entries from GVMap while iterating it. In
preparation for DenseMap change that relocates surviving entries on
erase, snapshot the map and erase by key.
DeltaFile
+8-9llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
+8-91 files

LLVM/project a725adbllvm/docs CMake.rst

[Docs] Update LLVM_USE_SANITIZER list (#199580)

HWAddress and Leaks are valid options that were not present in the
documentation.
DeltaFile
+3-2llvm/docs/CMake.rst
+3-21 files

LLVM/project 2cad228polly/lib/CodeGen IslNodeBuilder.cpp BlockGenerators.cpp

[polly] Simplify with DenseMap::remove_if. NFC (#199577)

In preparation for DenseMap change that relocates surviving entries on
erase.
DeltaFile
+5-9polly/lib/CodeGen/IslNodeBuilder.cpp
+1-4polly/lib/CodeGen/BlockGenerators.cpp
+6-132 files

LLVM/project 51e882bbolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

use operator<<

Created using spr 1.3.4
DeltaFile
+1-15bolt/include/bolt/Profile/DataAggregator.h
+2-5bolt/lib/Profile/DataAggregator.cpp
+3-202 files