NAS-139048 / 26.04 / fix cloud sync tests (#17880)
No one is monitoring our API tests 😄. The "get_snapshots" argument was
removed quite a bit ago but these tests were forgotten about.
[AArch64][SVE] Upgrade PTRUE patterns to ALL when they match vector length. (#172993)
When the number of active elements of a PTRUE pattern matches the
scalable vector length, we can upgrade the pattern to ALL. This enables
CSE with similar PTRUEs as well as other simplifications.
There was similar logic in `getPredicateForFixedLengthVector`, which
I've removed as it should no longer be needed with this change.
This change should also make the VLS matching in `isAllActivePredicate`
redundant, which I've also removed.
[flang][NFC] Strip trailing whitespace in markdown files (1 of 2)
This only strips trailing whitespace from a subset of the .md files in
flang/docs. Trailing whitespace will be removed from the remaining .md
files in a future commit
ValueTracking: Avoid calling computeKnownFPClass on matched constant
The fmul case already tries to match a literal value, we don't
need to match it twice.
ValueTracking: Improve computeKnownFPClass fmul handling
Improve known non-nan sign bit tracking. Handle cases with
a known 0 or inf input of indeterminate sign.
The tails of some library functions have sign management
for special cases.
[BOLT][BTI] Patch LLD-generated PLTs to contain BTI landing pad
This patch adds the patchPLTEntryForBTI to enable patching PLT entries
generated by LLD.
Context:
To keep BTI consistent, targets of stubs inserted in LongJmp need to be
patched. As PLTs are not optimized and emitted by BOLT, this patch adds
a helper for patching them in the original location.
For PLTs generated by LLD, this is safe as LLD inserts extra nops to
PLTs which don't already contain a BTI.
PLT entry before patching:
adrp x16, Page(&(.got.plt[n]))
ldr x17, [x16, Offset(&(.got.plt[n]))]
add x16, x16, Offset(&(.got.plt[n]))
[24 lines not shown]
[clang-tidy][NFC] Fix formatting issue in `clang-tidy` documentations (#168722)
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Co-authored-by: Baranov Victor <bar.victor.2002 at gmail.com>
[BOLT][BTI] Disassemble PLT entries when processing BTI binaries
PLT entries are PseudoFunctions, and are not disassembled or emitted.
For BTI, we need to check the first MCInst of PLT entries, to see
if indirectly calling them is safe or not.
This patch disassembles PLTs for binaries using BTI, while not changing
the behaviour for binaries without BTI.
The PLTs are only disassembled, not emitted.
[BOLT][BTI] Add needed BTIs in LongJmp or refuse to optimize binary (#171149)
This patch adds BTI landing pads to ShortJmp/LongJmp targets in the
LongJmp pass when optimizing BTI binaries.
BOLT does not have the ability to add BTI to all types of functions.
This patch aims to insert the landing pad where possible, and emit an
error and exit where it currently is not.
BOLT cannot insert BTIs into several function "types", including:
- ignored functions,
- PLT functions,
- other functions without a CFG.
Additional context:
In #161206, BOLT gained the ability to decode the .note.gnu.property
section, and warn about lack of BTI support for BOLT. However, this
warning is misleading: the emitted binary may not need extra BTI landing
[2 lines not shown]