[all-commits] [llvm/llvm-project] 8796d3: [MLIR][SparseTensor] Added Sparse Outer Loop Order...
Alexey Bataev via All-commits
all-commits at lists.llvm.org
Sun Jun 14 05:10:44 PDT 2026
Branch: refs/heads/users/alexey-bataev/spr/slp-support-memory-runtime-alias-checks
Home: https://github.com/llvm/llvm-project
Commit: 8796d370aed0153ce884319c2365530e92b9bf5e
https://github.com/llvm/llvm-project/commit/8796d370aed0153ce884319c2365530e92b9bf5e
Author: Govind Malasani <gmalasan at andrew.cmu.edu>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/IterationGraphSorter.cpp
A mlir/test/Dialect/SparseTensor/sparse_loop_ordering.mlir
Log Message:
-----------
[MLIR][SparseTensor] Added Sparse Outer Loop Ordering Strategy (#172198)
This PR builds upon the infrastructure set up for Sparse Tensor Loop
Ordering Heuristics (#154656) and the already existing Dense Outer loop
ordering strategy (#160168).
Commit: ae1c5074a0c6ec128fe824d456314e547b57165a
https://github.com/llvm/llvm-project/commit/ae1c5074a0c6ec128fe824d456314e547b57165a
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
M mlir/test/Dialect/SparseTensor/sparse_pack.mlir
Log Message:
-----------
[mlir][sparse_tensor] Fix out-of-bounds read in SparseAssembleOpConverter (#203289)
The assemble codegen loop iterates over the level rank but asserted on
`getDimShape()[lvl]`, which is sized by the dimension rank. Index the
level shape instead, matching the loop bound and the next line.
Fixes #203225.
Commit: a72232481fe7d87056dae9b89d8c2580323a9f39
https://github.com/llvm/llvm-project/commit/a72232481fe7d87056dae9b89d8c2580323a9f39
Author: dyung <douglas.yung at sony.com>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M clang/test/Driver/hexagon-toolchain-picolibc.c
M clang/test/Driver/hip-include-path.hip
M clang/test/Preprocessor/iwithprefix.c
Log Message:
-----------
Update remaining tests for usage of CLANG_RESOURCE_DIR (#202475)
We would like to enable the clang CMake option CLANG_RESOURCE_DIR on our
build bots, but found that a few tests that need updating since they
make assumptions about compiler paths that are modified when using
CLANG_RESOURCE_DIR. This is the final change to update the remaining 3
test failures we found.
In the previous change (#197154), I added a definition for
`%clang-resource-dir` which contains the path printed by the compiler
when run with `-print-resource-dir`. We pass that value to the remaining
tests where needed through the RUN lines and use that to verify the
correct path rather than just trying to guess at it using a complex
regex.
One exception was a test which uses `-###` which escapes the backslashes
on Windows. For that test I just used tr+sed to escape the backslashes so
that the matching would work in that particular test only.
Commit: 3a46e59c2bf4db22cc22ef8a92d459c34c696731
https://github.com/llvm/llvm-project/commit/3a46e59c2bf4db22cc22ef8a92d459c34c696731
Author: Hubert Tong <hubert.reinterpretcast at gmail.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
A clang/test/CodeGen/ubsan-aggregate-null-align-bounds.c
R clang/test/CodeGen/ubsan-aggregate-null-align.c
Log Message:
-----------
[NFC][tests] Rename test file and function names to reflect scope/content (#203731)
Rename test file to reflect scope (includes array bounds checking).
Rename test functions for internal convention consistency:
Consistently use "deref" and "subscript" to refer to `*p` and `arr[idx]`
expression forms.
Commit: e84e480bb5a53c794f303683df6460ddb44bb7ac
https://github.com/llvm/llvm-project/commit/e84e480bb5a53c794f303683df6460ddb44bb7ac
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
M flang/test/Fir/CUDA/cuda-device-func-transform.mlir
Log Message:
-----------
Revert "[flang][cuda] Set kernel intent(in) as const __restrict__" (#203734)
Reverts llvm/llvm-project#203652
breaking some downstream cudafor code
Commit: f7f904f96107dd59a06d8bc58f888befcfafd2b4
https://github.com/llvm/llvm-project/commit/f7f904f96107dd59a06d8bc58f888befcfafd2b4
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/reduction-ordered-fadd.ll
Log Message:
-----------
[SLP][NFC]Add a test with miscompiled ordered reductions, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/203738
Commit: 5db7e5b483a32f37d1d77a6f18d2bc4c59fa460a
https://github.com/llvm/llvm-project/commit/5db7e5b483a32f37d1d77a6f18d2bc4c59fa460a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-13 (Sat, 13 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/ordered-reduction-replaced.ll
M llvm/test/Transforms/SLPVectorizer/X86/ordered-reduction-root-deleted.ll
M llvm/test/Transforms/SLPVectorizer/X86/reduction-ordered-fadd.ll
Log Message:
-----------
[SLP]Keep ordered fadd reductions sequential
tryToReduceOrdered vectorizes reductions that are not associative (e.g. an
fadd with reassoc but without nsz). The accumulation order must be
preserved, but the reduction was costed and emitted with reassoc, and the
whole tree was rotated to memory order by reorderTopToBottom, which can
change the result of the sequential reduction.
Drop reassoc from the flags used to cost and emit the reduction so the
generated llvm.vector.reduce.fadd stays ordered, and drop the top-to-bottom
reorder so the reduced values keep their original accumulation order.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/203741
Commit: 9d43f86e6f302604b109ffa9df7de793aeb801d8
https://github.com/llvm/llvm-project/commit/9d43f86e6f302604b109ffa9df7de793aeb801d8
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M llvm/test/tools/llubi/alloca.ll
M llvm/test/tools/llubi/attributes.ll
M llvm/test/tools/llubi/gep.ll
M llvm/test/tools/llubi/inttoptr.ll
A llvm/test/tools/llubi/inttoptr_freed.ll
A llvm/test/tools/llubi/inttoptr_generation.ll
A llvm/test/tools/llubi/inttoptr_generation2.ll
A llvm/test/tools/llubi/inttoptr_gep.ll
A llvm/test/tools/llubi/inttoptr_multiobj.ll
A llvm/test/tools/llubi/inttoptr_multiobj2.ll
A llvm/test/tools/llubi/inttoptr_oob.ll
A llvm/test/tools/llubi/inttoptr_oob2.ll
M llvm/test/tools/llubi/lib_abort.ll
M llvm/test/tools/llubi/lib_exit.ll
M llvm/test/tools/llubi/lib_io.ll
M llvm/test/tools/llubi/lib_printf_format.ll
M llvm/test/tools/llubi/lib_terminate.ll
M llvm/test/tools/llubi/loadstore_be.ll
M llvm/test/tools/llubi/loadstore_le.ll
M llvm/test/tools/llubi/metadata.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/ExecutorBase.cpp
M llvm/tools/llubi/lib/ExecutorBase.h
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llubi/lib/Library.cpp
M llvm/tools/llubi/lib/Value.cpp
M llvm/tools/llubi/lib/Value.h
Log Message:
-----------
[llubi] Add support for exposed provenance (#200596)
This patch implements the semantics of exposed provenance, as described
in [nikic's RFC draft](https://hackmd.io/@nikic/SJBt4mFCll) and
[Miri](https://doc.rust-lang.org/beta/nightly-rustc/miri/enum.Provenance.html).
The provenance of an inttoptr is marked as "wildcard", which picks one
from previously exposed provenances each time a memory access is
performed. For angelic non-determinism, a snapshot of the exposed
provenance set is recorded when inttoptr executes. When a memory access
is performed, all invalid provenances are masked out. If we fail to pick
one, it is UB.
Since all memory objects in llubi are non-overlapping (i.e., there is at
most one memory object satisfying `Obj->inBounds(Addr)` for each
address), we can determine a unique memory object for a wildcard
provenance when the first memory access is performed.
This matches Miri's behavior. Another variant is to resolve the memory
object when inttoptr executes, which gives a limited provenance set
(implemented in the second commit). See also the comments in nikic's RFC
(`For example, one could limit inttoptr to only recover the provenance
of an object that the address is part of.`).
Another thing to be noted is that `gep inbounds` cannot determine the
associated memory object of a wildcard provenance, because it doesn't
cause UB. Instead, I reuse the Obj field to represent something like
`this pointer has a wildcard provenance, but it is only allowed to use
exposed provenances associated with a specific memory object, when
performing load/store via the pointer`. This is an approximation: we
cannot update the wildcard provenance if the gep is used by an icmp and
a branch.
As we don't support `captures` for now, all checkers just return true.
I'll add more tests in the `captures` patch.
Commit: 4331c07e8a8d398daf2204b6c4085f992b343308
https://github.com/llvm/llvm-project/commit/4331c07e8a8d398daf2204b6c4085f992b343308
Author: William Tran-Viet <wtranviet at proton.me>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M libcxx/include/optional
Log Message:
-----------
[libc++][NFC] Simplify `optional<T>` and `optional<T&>` a bit (#203665)
- Make `optional<T&>`'s iterator base directly from the storage base
instead of inheriting the empty bases, allowing us to remove the
`is_lvalue_reference_v` conditions in the empty bases
- Move the `__is_constructible_for_optional_{meow}` variables closer to
`make_optional` since that's the only place they're really useful for
now
- Change the SFINAE for the iterator availability to use concepts
instead
The above should make it easier to split up in an upcoming patch.
Commit: 0a2565d7c6dd196eceb8c93befde1150d78790b7
https://github.com/llvm/llvm-project/commit/0a2565d7c6dd196eceb8c93befde1150d78790b7
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
Log Message:
-----------
[clang][bytecode] Use `isSignedType()` in `pushInteger` (#203670)
We need to classify here anyway, so use the information from the
primtype.
Commit: db210c5e33643a8154329a607b5b6dcd419271df
https://github.com/llvm/llvm-project/commit/db210c5e33643a8154329a607b5b6dcd419271df
Author: Shanzhi Chen <chenshanzhi at huawei.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
Log Message:
-----------
[NFC] Prefer compile-time branching in function template (#203698)
Commit: beadaec428a65a901be47964619121cc5b889635
https://github.com/llvm/llvm-project/commit/beadaec428a65a901be47964619121cc5b889635
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M llvm/test/tools/llubi/global_constexpr_initializer.ll
A llvm/test/tools/llubi/unsupported_constant.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llubi/lib/Value.h
Log Message:
-----------
[llubi] Add support for constant expressions (#203746)
This patch adds support for most kinds of constant expressions, except
for ptrtoint/inttoptr. Casting between pointers and integers is
stateful, so they cannot be cached. I plan to implement them in
subsequent patches. ptrtoaddr is also supported in this patch to block
constant folding.
The logic in `evaluateConstantExpression` duplicates the interpreter's
code in `visit*` methods. But I think it is acceptable. Only the GEP
computation is reused.
Commit: da2e8c4bef1521a60f2059d68b6625c37a8984ac
https://github.com/llvm/llvm-project/commit/da2e8c4bef1521a60f2059d68b6625c37a8984ac
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-14 (Sun, 14 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
A clang/test/CodeGen/ubsan-aggregate-null-align-bounds.c
R clang/test/CodeGen/ubsan-aggregate-null-align.c
M clang/test/Driver/hexagon-toolchain-picolibc.c
M clang/test/Driver/hip-include-path.hip
M clang/test/Preprocessor/iwithprefix.c
M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
M flang/test/Fir/CUDA/cuda-device-func-transform.mlir
M libcxx/include/optional
M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/ordered-reduction-replaced.ll
M llvm/test/Transforms/SLPVectorizer/X86/ordered-reduction-root-deleted.ll
A llvm/test/Transforms/SLPVectorizer/X86/reduction-ordered-fadd.ll
M llvm/test/tools/llubi/alloca.ll
M llvm/test/tools/llubi/attributes.ll
M llvm/test/tools/llubi/gep.ll
M llvm/test/tools/llubi/global_constexpr_initializer.ll
M llvm/test/tools/llubi/inttoptr.ll
A llvm/test/tools/llubi/inttoptr_freed.ll
A llvm/test/tools/llubi/inttoptr_generation.ll
A llvm/test/tools/llubi/inttoptr_generation2.ll
A llvm/test/tools/llubi/inttoptr_gep.ll
A llvm/test/tools/llubi/inttoptr_multiobj.ll
A llvm/test/tools/llubi/inttoptr_multiobj2.ll
A llvm/test/tools/llubi/inttoptr_oob.ll
A llvm/test/tools/llubi/inttoptr_oob2.ll
M llvm/test/tools/llubi/lib_abort.ll
M llvm/test/tools/llubi/lib_exit.ll
M llvm/test/tools/llubi/lib_io.ll
M llvm/test/tools/llubi/lib_printf_format.ll
M llvm/test/tools/llubi/lib_terminate.ll
M llvm/test/tools/llubi/loadstore_be.ll
M llvm/test/tools/llubi/loadstore_le.ll
M llvm/test/tools/llubi/metadata.ll
A llvm/test/tools/llubi/unsupported_constant.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Context.h
M llvm/tools/llubi/lib/ExecutorBase.cpp
M llvm/tools/llubi/lib/ExecutorBase.h
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llubi/lib/Library.cpp
M llvm/tools/llubi/lib/Value.cpp
M llvm/tools/llubi/lib/Value.h
M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
M mlir/lib/Dialect/SparseTensor/Transforms/Utils/IterationGraphSorter.cpp
A mlir/test/Dialect/SparseTensor/sparse_loop_ordering.mlir
M mlir/test/Dialect/SparseTensor/sparse_pack.mlir
Log Message:
-----------
Rebase
Created using spr 1.3.7
Compare: https://github.com/llvm/llvm-project/compare/7e41e3ab669d...da2e8c4bef15
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list