[libc++][NFC] Simplify `gcd` a bit (#173570)
1. With `if constexpr` we can avoid partial specializations of
`__ct_gcd`. This patch changes it to a function template and renames it
to `__abs_in_type` to slightly improve readability.
2. `__gcd` was made non-recursive by
27a062e9ca7c92e89ed4084c3c3affb9fa39aabb, so this patch simply inlines
it into `gcd`.
[MLIR] Fix mlir-opt crash in ReshapeOpsUtils.cpp when collapse_shape index is invalid (#173791)
This patch fixes a crash occurring in mlir-opt when running
collapse_shape with an invalid index configuration. Instead of crashing,
an error message is returned to the user.
Fixes: #173567
---------
Co-authored-by: Bazinga! <akparmar004>
[CloneFunction] Fix non-deterministic PHI cleanup using PHINode::removeIncomingValueIf()
Previously, we use `std::map<BasicBlock *, unsigned> PredCount` to track excess incoming blocks and removed them one by one using `removeIncomingValue`.
then we remove the excess incoming blocks one by one.
Since `PredCount` use `BasicBlock *` as key, the iteration order depends on the memory addresses of the blocks.
With `PHINode::removeIncomingValue()` changed to use the swapping strategy, the order in which operands are removed affects the final order of the remaining operands in the PHI node. this will cause non-determinism in compiles.
This patch uses `PHINode::removeIncomingValueIf()` to remove invalid incoming blocks that no longer
go to `NewBB` block, fixes the non-determinism.
[AArch64][SME] Vastly simplify and fix `sme-framelower-use-bp.ll` (NFC) (#172999)
This test was added in:
https://github.com/llvm/llvm-project/commit/d4c86e7f3ea298b259e673142470a7b838f5f302
However, over time this test has stopped testing that change. That
change ensures that LLVM sets up the base-pointer in functions with only
+sme (no sve) and dynamic allocas + SVE stack objects.
The original test did not intend to have dynamic allocas or SVE stack
objects though. They were introduced by the IR-based SME ABI pass
unintentionally pushing allocas outside the entry block and SVE spills.
Both of these have been resolved, so this test was not testing the
original change. This patch simplifies the test, and corrects it so
tests the intended functionality.
[MCA][AArch64] Model single-register EXTR as ROR on Neoverse N2 (#172831)
As per the SWOG for [Neoverse
N2](https://developer.arm.com/documentation/109914/latest/), the latency
of a one register bitfield extract should be 1 and the throughput should
be 4. This patch models the single register EXTR (alias ROR) for the
Neoverse N2 model.
[MCA] Fix -mcpu=help flag (#173399)
Previously, using the `-mcpu=help` flag would require an empty stdin to
be passed to print the CPU/Features
list.
- Moves the `MemoryBuffer::getFileOrSTDIN` call below an early return.
- Adds a test mcpu-help.test is included which tests the flag with a
missing file. Previously, this would have resulted in an error with no
outputted help list, but now provides the help list and ignores the
missing file input.
[LLVM][CMake][NFC] Use generator expression to separate CXXFLAGS (#173869)
This avoids looking at the individual sources for mixed C/C++ libraries.
The previous code was written ~2014. Generator expressions were added in
CMake 3.3 (2015). We currently require CMake 3.20 and therefore can rely
on more modern features.
Apart from simplifying the code, this is preliminary work to make more
use of pre-compiled headers (#173868).
py-borgbackup: updated to 1.4.3
Version 1.4.3 (2025-12-02)
For upgrade and compatibility hints, please also read the “Upgrade Notes” section above.
New features:
None.
Fixes:
compact: replace AssertionError with a warning,
compact: also fix segment hints data for lost segment files.
CI: FUSE-related fixes and improvements,
The Linux and FreeBSD binaries built on GitHub now include working FUSE support (based on llfuse).
[26 lines not shown]
[mlir][ods] Fix ODS bug for usePropertiesForAttributes = 0 (#173006)
This fixes invalid cpp generated in the `verifyInvariantsImpl` method
for operations generated from ODS when `usePropertiesForAttributes = 0`
is set on the Dialect.
Fixes the bug introduced in
- https://github.com/llvm/llvm-project/pull/153603
Closes #171217
Reland "[mlir][tensor] Add ValueBoundsOpInterface for ExpandShapeOp and CollapseShapeOp #173356" (#173857)
The original PR #173356 was reverted (commit 5d6c40b) due to an
AddressSanitizer failure
(https://lab.llvm.org/buildbot/#/builders/52/builds/13831).
The failure was caused by incorrect use of a const reference
https://github.com/llvm/llvm-project/pull/173356#discussion_r2643027667,
which bound a reference to a temporary value returned by
`getReassociationIndices()`.
This reland drops the const reference and uses a copy instead.
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>