[mlir][scf] Fix trip count signedness and overflow in SCF Utils (#178782)
Change `getConstLoopTripCounts` to return `SmallVector<llvm::APInt>`
instead
of `SmallVector<int64_t>` to properly handle signedness and prevent
potential
overflow issues. Update all call sites to use APInt methods and uint64_t
for
intermediate calculations.
- Use APInt::isOne() instead of direct comparison with 1
- Store trip counts in uint64_t to avoid overflow in modulo operations
- Remove TODOs about signedness and overflow issues that are now fixed
Fixes #178506
[libc++] Don't fail LNT benchmark script when a benchmark fails
It's normal for some benchmarks to fail (e.g. fail to compile), and
that shouldn't cause the whole script to error out.
[AArch64] Move the existing fcvt fixed point selection to tblgen. (#178603)
This removes the existing fcvt(fmul) -> vcvtfp2fx intrinsics combine
from selection dag, moving the code into a tablegen pattern like the
other fixed-point converts are. This will allow gisel to share the same
patterns (but this part is just SDAG).
The is expected to be roughly an NFC, the existing tests keep passing,
but there might be some differences due to performing the optimization
later.
Fix DS secrets handling regression
This commit fixes a regression introduced when adding `cluster`
parameter to directory services for stateful failover.
ValueTracking: Move powi logic to KnownFPClass (#179301)
This case is kind of ugly because we still need to look at the
known bits to short circuit the source check
[libc++] Fix naming of benchmarks with new SPEC metrics (#178445)
We need to ensure that no dots end up in those names to avoid confusing
LNT and the compare-benchmarks script.
[mlir] TileUsingInterface bugfix for dominance error (#178190)
In this PR i move the insertion point in the
`yieldReplacementForFusedProducer` because i ran into some issue where a
`tensor.extract_slices` tried to use a result of `affine.apply` that was
inserted at the end of the block instead of the start of it.
This is the full error of the test i added before this change:
```mlir
third-party/llvm-project/mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-scfforall.mlir:83:11: error: operand #1 does not dominate this use
%pack = linalg.pack %gen#1
^
third-party/llvm-project/mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-scfforall.mlir:83:11: note: see current operation: %24 = "tensor.extract_slice"(%23, %36, %8) <{operandSegmentSizes = array<i32: 1, 1, 1, 0>, static_offsets = array<i64: -9223372036854775808, 0>, static_sizes = array<i64: -9223372036854775808, 1024>, static_strides = array<i64: 1, 1>}> : (tensor<32x1024xf32>, index, index) -> tensor<?x1024xf32>
third-party/llvm-project/mlir/test/Interfaces/TilingInterface/tile-fuse-and-yield-using-scfforall.mlir:71:12: note: operand defined here (op in the same block)
%gen:2 = linalg.generic {
^
// -----// IR Dump After InterpreterPass Failed (transform-interpreter) //----- //
#map = affine_map<(d0, d1) -> (d0, d1)>
[74 lines not shown]
Thread Safety Analysis: Compare values of literals (#148551)
The typical case for literals is an array of mutexes, where we want to
distinguish `mutex[0]` from `mutex[1]` and so on. Currently they're
treated as the same expression, in fact all literals are treated as the
same expression.
The infrastructure for literals is already there, although it required
some changes, and some simplifications seemed opportune:
* The `ValueType` had fields for size and signedness. But only integer
have signedness, and the size is irrelevant if we don't want to emit
machine code. For the abstract semantics that we're interested in, only
the number matters.
* We remove the `BT_Void`: `void` literals don't exist in C++.
* We remove `BT_Float` and `BT_ValueRef`: floating-point numbers and
complex numbers are probably not used in lock expressions.
* We replace `BT_Pointer` with `BT_NullPointer`. There are no pointer
literals, only null pointer literals.
[15 lines not shown]
py-mypy: add bl3.mk file
some packages use the provided *.c/*.h files directly from the
installation location, so we need to tell bl3.mk to allow this.
[Github] Prevent updates to python version in release binaries workflow (#179290)
This workflow needs special care around python versions. We should by
default disable automatic python updates to this workflow.
[Github] Fully remove use of login_or_token (#179258)
PyGithub deprecated this a while back. An earlier patch attempted to fix
all the deprecations, but it looks like my grep expression missed a
bunch of cases. This patch should catch the remaining ones (minus libc++
which have been split for review by libc++ maintainers).