[AArch64][CodeGen] Don't try to compute stack addresses in xzr (#213009)
Conditional branch tuning can replace an ADD + CBZ with an ADDS + Bcc.
This patch disables that transformation in the case where the ADD
instruction has a frame offset operand, because in that situation, it
can later be expanded into multiple instructions.
Fixes #212528, which had a case of this in which the destination
register of the ADDS was rewritten to XZR, because the value was
calculated _only_ to compare against zero. When the ADDS was expanded
into multiple instructions, the output instructions were not even
legal with XZR as the destination.
However we disable this transformation even when not rewriting the
destination register, because some of the instructions involved in
computing a frame offset have no flag-setting variant. (E.g. ADDVL, if
there are SVE variable-sized vectors on the stack.)
[IR] Remove deprecated BasicBlock::getFirstNonPHI (#213926)
All in-tree callers already migrated to getFirstNonPHIIt(), which
preserves debug-info placement. No remaining users of the deprecated
overloads exist in the codebase.
Co-authored-by: Claude <noreply at anthropic.com>
[libc][mathvec] Vectorise exp2f and exp10f (#211365)
Replaces exp2f and exp10f with fully vectorised implementations.
Includes refactoring of expf polynomial evalulation into expf_utils.h
[libc++][test] Add `void` cast to a discarded call to `remquo` (#213849)
For calls to `remquo`, the return values are generally expected to be
used, while it is rare to only use the value written via the pointer
parameter. Moreover, some implementors already planned to apply
`[[nodiscard]]` to `remquo`, see also https://llvm.org/PR171763. As a
result, it is perhaps better to add `void` cast to the discarded call to
`remquo` in the test file.
misc/mc6: Midnight Commander fork with plugins (new port)
Also features new archive manager built on libarchive that
replaces the legacy built-in tarfs and cpiofs VFS modules.
Via: https://www.opennet.ru/opennews/art.shtml?num=66018
[SPIRV] Emit FPFastMathMode for Call (#211879)
`SPV_KHR_float_controls2` makes `FPFastMathMode` valid for all core
instructions, so this patch enables translation of fast math flags for
`OpFunctionCall`.
[runtimes] Drop reviewers-libcxx from reviews touching runtimes/ (#213736)
Since runtimes/ has been picked up by other subprojects, it doesn't make
sense anymore for reviewers-libcxx to watch all changes to it.
[libc++] Diagnose unused variables of container types (#203084)
This adds `[[gnu::warn_unused]]` to all container types currently
implemented. In the future new containers should be added to the list,
as well as other value types in the library.
Clang has `-Wunused`, which is a suite of warnings about unused
variables. However, that doesn't warn for a lot of class types,
especially non-trivial ones. That is done to avoid false-positives for
RAII-style types like `lock_guard`. `[[gnu::warn_unused]]` exists to
tell Clang that a given class is a value type.
resterm: Update to 0.51.1
Changelog:
gRPC authentication
Timeouts
New gRPC settings
Status details
File resolution for gRPC
Explicit credentials skip unused auth work
Workspace and file handling
Compatibility Notes
[SLP]Support copyable fadds in fmuladd, modeled as fmuladd(1.0, a, b)
A copyable single-use fadd a, b is modeled as fmuladd(1.0, a, b), which
equals fadd a, b (the multiply by 1.0 is exact and preserves signed
zeros), so the add dies instead of being computed and gathered. The
addend/multiplicand assignment per lane matches the majority operand
kinds of the non-copyable lanes. Same all-or-nothing and tie-break
rules as for absorbed fmuls.
Reviewers: hiraditya, bababuck, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/213786
[LLVM][CodeGen][SVE] Add isel patterns for abs-diff partial reductions. (#212800)
For SVE2 we can use top/bottom [S/U]ABAL[T/B] instruction. SVE2p3 can
use just [S/U]ABAL.