Update Android CI and Emulator image to API 23 (#194936)
As seen in https://github.com/android/ndk/issues/2188, NDK will raise
minimum supported version to API 23 (Android 6.0) in r31. We need to
bump the API level for the x86 emulator image so we can use it for the
CI. It required generating a new ABI list for API 23 and removing the
old API 21 and making some changes to adb_run.py to filter out warnings
and get permissions for the adb run folder.
[libc][math] Refactor fmaximum-mag-num-fminimum-mag-num family to header-only (#195415)
Refactors the fmaximum-mag-num-fminimum-mag-num math family to be
header-only.
part of: #147386
Target Functions:
- fmaximum_mag_numf128
- fmaximum_mag_numf16
- fmaximum_mag_numl
- fminimum_mag_num
- fminimum_mag_numbf16
- fminimum_mag_numf
- fminimum_mag_numf128
- fminimum_mag_numf16
- fminimum_mag_numl
[SLP] Keep loops BTCs across CurrentLoopNest truncations
Record SCEV BTCs in a per-depth vector so a later loop nest reaching a
previously merged depth via the empty, divergence, or extend branch in
buildTreeRec is re-validated.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/195411
[Instrumentor] Add unreachable support; unreachable stack trace printing
Allow to instrument unreachable and provide a use case for stack trace
printing.
[libc][math] Refactor ufromfp family to header-only (#195395)
Refactors the ufromfp math family to be header-only.
part of: #147386
Target Functions:
- ufromfp
- ufromfpbf16
- ufromfpf
- ufromfpf128
- ufromfpf16
- ufromfpl
- ufromfpx
- ufromfpxbf16
- ufromfpxf
- ufromfpxf128
- ufromfpxf16
- ufromfpxl
Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
[dsymutil] Relax tests to accept both linker outputs (#195354)
Remove the FIXMEs from tests whose divergence between the classic and
parallel linkers was cosmetic. Typical relaxations consist of using
CHECK-DAG for reordered attributes and allowing DIE and string offsets
to differ.
[LowerTypeTests] Add debug info to jump table entries (#194493)
[LowerTypeTests] Add debug info to jump table entries (#192736)
When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.
Now stack trace, when stopped on jump table entry will looks like this:
```
#0: c::c() (.cfi_jt) at sanitizer/ubsan_interface.h:0:0
#1: __ubsan_check_cfi_icall_jt at sanitizer/ubsan_interface.h:0
```
Following up on previous attempts #192736 and #193670, this PR is
essentially #192736 but with the `(.cfi_jt)` and
`__ubsan_check_cfi_icall_jt`
frames swapped. While the specific order of `__ubsan_check_cfi_icall_jt`
[5 lines not shown]
[llvm-profgen] Support [buildid:]0xaddr format in perfscript input (#190863)
Add support for optional build ID prefix in perfscript addresses,
following the format buildid:0xhexaddr. This enables multi-DSO profiling
with a single input file: each address optionally carries a build ID,
and profgen filters addresses by matching the binary's build ID.
--filter-build-id=<hex> CLI option overrides auto-detected build ID.
[lldb] Make VariableList::FindVariable const (NFC) (#195355)
I was surprised to find `FindVariable` was not `const`. While making it
`const`, I also replaced the iterator based loop with a ranged based
loop.