[NFC][LLVM] Make `MachineInstrBuilder::constrainAllUses` return `void`
This function always returns `true`; so we can transform it to return
`void` and simplify the code.
Follow up of https://github.com/llvm/llvm-project/pull/179501 .
[libc] Tweak the runtimes cross-build for GPU (#178548)
Summary:
We should likely use `-DLLVM_DEFAULT_TARGET_TRIPLE` as the general
source of truth, make the handling work with that since we use it for
the output directories. Fix the creation of startup files in this mode
and make sure it can detect the GPU properly.
Fixes: https://github.com/llvm/llvm-project/issues/179375
(cherry picked from commit e07a1182fd58a5b48a2c78bc3ae03872186d4ae0)
[libc++] Simplify the implementation of __{un,re}wrap_range (#178381)
We can use a relatively simple `if constexpr` chain instead of SFINAE
and class template specialization, making the functions much simpler to
understand.
[AArch64][SME] Limit where SME ABI optimizations apply (#179273)
These were added recently with a fairly complex propagation step,
however, these optimizations can cause regressions in some cases.
This patch limits the cross-block optimizations to the simple case
picking a state that matches all incoming blocks. If any block doesn't
match, we fallback to using "ACTIVE", the default state.
[libc++] Avoid template instantiations in the duration aliases (#178182)
These templates are instantiated whenever `<__chrono/duration.h>` is
included, making these calculations quite costly. I also don't think
that folding the calculations decreases readability here (IMO it's
actually easier to read now), so I don't think there is a reason we
shouldn't do this.
`<__chrono/duration.h>` is currently (transitively) included in at least
(I stopped checking) `<algorithm>`, `<atomic>`, `<barrier>`, `<chrono>`,
`<condition_variable>`, `<future>`, `<iomanip>`, `<ios>`, `<iostream>`,
`<istream>`, `<latch>`, `<locale>`, `<mutex>`, `<ostream>`,
`<semaphore>`, `<shared_mutex>`, `<syncstream>` and `<thread>`
firewall: tweak the interface selector
Show group name and description. Could be inconvenient when
the description is long, but better for the auto-groups.
That also removes the hint at the end. See note below.
Use fixed width logos for the interface groupings.
Remove muted from the any selection.
TODO/Remarks:
The groupings being shown as muted is a bit inconvenient also
as it muddies the perspective of what this does and how important
it is. Would be nicer to not have it in this particular selector.
When an interface is selected it would be perfect if the grouping
icon would show so people see better what they selected. Coloring
is nice so that would take it to the next level.
[5 lines not shown]
[PowerPC] Only set QualName symbol on first section switch (#179253)
We were setting it every time when switching to the section. This caused
problems when the debug_aranges emission performed a switch at the end
of the section, resulting in symbols incorrectly pointing to the end
instead of the start of the function.
[X86] Lower CTTZ/CTLZ vXi8 vectors using GF2P8AFFINEQB (#118012)
CTTZ can be lowered using GF2P8AFFINEQB if we isolate the lowest set bit
(or is zero) and then use GF2P8AFFINEQB to perform a look up
With CTTZ, CTLZ can be lowered as CTTZ(BITREVERSE())
As discussed on #110308
[analyzer] Fix crash when copying uninitialized data in function named "swap" (#178923)
So the RegionStore has some assumptions, namely that the
core.unitialized.Assign checker is enabled and detects copying Undefined
(read of uninitialized data) before the Store is instructed to model
this.
As it turns out, there is a little hack in the
UndefinedAssignmentChecker:
```c++
void UndefinedAssignmentChecker::checkBind(SVal location, SVal val,
const Stmt *StoreE, bool AtDeclInit,
CheckerContext &C) const {
if (!val.isUndef())
return;
// Do not report assignments of uninitialized values inside swap functions.
// This should allow to swap partially uninitialized structs
if (const FunctionDecl *EnclosingFunctionDecl =
[23 lines not shown]
arti: update to 2.0.0.
# Arti 2.0.0 — 2 February 2026
Arti 2.0.0 deprecates library functionality in the `arti` crate
(which should only be used as a binary),
deprecates some legacy features and configuration formats,
and adds support for using the `inet-auto` socket type
to automatically pick an unused TCP port for the RPC server.
As usual, there is also a significant amount of behind-the-scenes work on
relay and directory authority functionality.
While "2.0" may sound like an exciting release number, it's actually fairly mundane.
[Semver](https://semver.org) requires us to bump our major version number when making breaking changes,
and we had a couple breaking changes we wanted to make in order to keep our APIs tidy.
The only people who should notice significant changes in this release are developers
who are building applications using the `arti` crate directly,
rather than the recommended `arti-client` crate or other lower-level crates.
Attributor: Use anchor scope for SimplifyQuery context (#178958)
This was asserting in computeKnownFPClass when a dominator tree
check happened across functions.
Fixes #178954
[PowerPC] Fix miscompilation when using 32-bit ucmp on 64-bit PowerPC (#178979)
I forgot that you need to clear the upper 32 bits for the carry flag to
work properly on ppc64 or else there will be garbage and possibly
incorrect results.
Fixes: https://github.com/llvm/llvm-project/issues/179119
I do not have merge permissions.
(cherry picked from commit b4797d4c03b6efb624b8b3ba17a13a8c40b31d75)
[SimpleLoopUnswitch][NFC] move quadratic asserts under EXPENSIVE_CHECKS (#144887)
Three asserts/checks in SimpleLoopUnswitchPass are quite expensive on IR
containing many deeply nested loop nests.
Their cost is not linear with the number of loop nests and these asserts
quickly become the most significant cost of the whole compilation.
This patch move some of the asserts under `EXPENSIVE_CHECKS` and leaves the one
line 1080 unguarded.
This problem was exposed with flang because of Fortran
multidimensional arrays and array expressions. In some programs, half of the end to
end compilation time was spent in those asserts.