Page MenuHomePhabricator

rprichard (Ryan Prichard)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 7 2017, 9:53 PM (191 w, 5 d)

Recent Activity

Fri, Apr 9

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

error: [FE_UPWARD] in __compiler_rt_scalbn(-0x1p+0 [BFF0000000000000], 10000) = -0x1.fffffffffffffp+1023 [FFEFFFFFFFFFFFFF] != -inf [FFF0000000000000]

Fri, Apr 9, 5:17 PM · Restricted Project

Mon, Mar 22

rprichard added a comment to D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.

It is actually using clang-r416183 from toolchains.py. From there, you can go to the manifest for building those prebuilts. This line shows you the SHA for the toolchain/llvm-project used to build the prebuilts. Finally, you can look here to see what was merged. Note that there's a typo for the revision number in the commit message, but the upstream LLVM SHA mentioned there is correct. Here is where this toolchain was built in case that is useful/interesting.

Mon, Mar 22, 1:03 PM · Restricted Project

Fri, Mar 19

rprichard added a comment to D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.

With NDK r22, I only see libunwind.a for armv7. Will it be provided for other architectures in future NDK versions?

Fri, Mar 19, 5:07 PM · Restricted Project

Mar 9 2021

rprichard committed rGa478b0a199f4: [Android] Default to --rtlib=compiler-rt (authored by rprichard).
[Android] Default to --rtlib=compiler-rt
Mar 9 2021, 6:38 PM
rprichard closed D96404: [Android] Default to --rtlib=compiler-rt.
Mar 9 2021, 6:38 PM · Restricted Project
rprichard updated the diff for D96404: [Android] Default to --rtlib=compiler-rt.

Rebase this revision.

Mar 9 2021, 2:53 PM · Restricted Project
rprichard added a comment to D98173: [compiler-rt] Normalize i?86 to i386 and armv* to arm for COMPILER_RT_DEFAULT_TARGET_ARCH.

I think this is OK for Android.

Mar 9 2021, 12:42 AM · Restricted Project

Feb 26 2021

rprichard added a reverting change for rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline": rGd20220141022: Reland "[builtins] Define fmax and scalbn inline".
Feb 26 2021, 4:22 PM
rprichard committed rGd20220141022: Reland "[builtins] Define fmax and scalbn inline" (authored by rprichard).
Reland "[builtins] Define fmax and scalbn inline"
Feb 26 2021, 4:22 PM
rprichard closed D91841: [builtins] Define fmax and scalbn inline.
Feb 26 2021, 4:22 PM · Restricted Project
rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

MSVC's scalbn appears to ignore the current rounding mode, so the value returned from __compiler_rt_scalbn[f] disagreed with the value returned from scalbn[f]. I think it's sufficient to disable the non-default-rounding-mode tests for MSVC. With this change, the __divdc3 and __divsc3 builtins, when compiled with MSVC, should produce the same results as on Linux systems (or as with MinGW and the other Unix systems I tested).

Feb 26 2021, 4:59 AM · Restricted Project
rprichard updated the diff for D91841: [builtins] Define fmax and scalbn inline.

Disable non-default-rounding-mode scalbn[f] tests when using the MSVC libraries.

Feb 26 2021, 4:27 AM · Restricted Project
rprichard reopened D91841: [builtins] Define fmax and scalbn inline.
Feb 26 2021, 4:26 AM · Restricted Project

Feb 25 2021

rprichard committed rG91f8aacc040f: [Android] Use -l:libunwind.a with --rtlib=compiler-rt (authored by rprichard).
[Android] Use -l:libunwind.a with --rtlib=compiler-rt
Feb 25 2021, 3:40 PM
rprichard closed D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.
Feb 25 2021, 3:40 PM · Restricted Project
rprichard retitled D97356: [sanitizer] Pass -e dotbytes=10m to wget from [sanitizer] Pass -e dotbytes=1m to wget to [sanitizer] Pass -e dotbytes=10m to wget.
Feb 25 2021, 1:53 PM
rprichard committed rZORG1a9f4798fee2: [sanitizer] Pass -e dotbytes=10m to wget (authored by rprichard).
[sanitizer] Pass -e dotbytes=10m to wget
Feb 25 2021, 1:52 PM
rprichard closed D97356: [sanitizer] Pass -e dotbytes=10m to wget.
Feb 25 2021, 1:52 PM
rprichard committed rZORG0477d926afac: [sanitizer] Update x86 ABILIST filtering for x86_64 devices (authored by rprichard).
[sanitizer] Update x86 ABILIST filtering for x86_64 devices
Feb 25 2021, 1:52 PM
rprichard closed D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.
Feb 25 2021, 1:52 PM
rprichard committed rZORG1e7891e19f50: [sanitizer] Set default rtlib to libgcc (authored by rprichard).
[sanitizer] Set default rtlib to libgcc
Feb 25 2021, 1:52 PM
rprichard closed D97354: [sanitizer] Set default rtlib to libgcc.
Feb 25 2021, 1:52 PM

Feb 24 2021

rprichard added a comment to D97356: [sanitizer] Pass -e dotbytes=10m to wget.

This happens only once after clean build, so it did not annoy us, but I don't mind for even bigger value e.g. 10m

Feb 24 2021, 5:10 PM
rprichard updated subscribers of D91841: [builtins] Define fmax and scalbn inline.

The new unit tests failed on sanitizer-windows. I reverted it for now. https://lab.llvm.org/buildbot/#builders/127/builds/6620

Feb 24 2021, 2:51 PM · Restricted Project
rprichard added a reverting change for rG341889ee9e03: [builtins] Define fmax and scalbn inline: rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline".
Feb 24 2021, 2:49 PM
rprichard added a reverting change for D91841: [builtins] Define fmax and scalbn inline: rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline".
Feb 24 2021, 2:49 PM · Restricted Project
rprichard committed rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline" (authored by rprichard).
Revert "[builtins] Define fmax and scalbn inline"
Feb 24 2021, 2:49 PM
rprichard committed rG341889ee9e03: [builtins] Define fmax and scalbn inline (authored by rprichard).
[builtins] Define fmax and scalbn inline
Feb 24 2021, 2:33 PM
rprichard closed D91841: [builtins] Define fmax and scalbn inline.
Feb 24 2021, 2:33 PM · Restricted Project
rprichard updated the summary of D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.
Feb 24 2021, 2:24 AM
rprichard updated the diff for D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.

Account for both x86_64,arm64,x86,arm and x86_64,x86,arm64,arm orderings.

Feb 24 2021, 2:23 AM

Feb 23 2021

rprichard added a comment to D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.

OTOH, my internal master Cuttlefish VM sets ro.product.cpu.abilist to x86_64,arm64-v8a,x86,armeabi-v7a,armeabi.

Feb 23 2021, 10:07 PM
rprichard added a comment to D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.

FWIW: The sanitizer tests passed on an x86_64 R emulator (RSR1.200819.001.A1).

Feb 23 2021, 9:57 PM
rprichard added a reviewer for D97356: [sanitizer] Pass -e dotbytes=10m to wget: vitalybuka.
Feb 23 2021, 9:52 PM
rprichard added a reviewer for D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices: vitalybuka.
Feb 23 2021, 9:52 PM
rprichard added a reviewer for D97354: [sanitizer] Set default rtlib to libgcc: vitalybuka.

I also tested a version of this change where I instead added --rtlib=libgcc to the flags in configure_android. It was necessary to add --rtlib=libgcc both for compiling and linking, because at compile-time, Clang can use outline-atomics on AArch64. On other architectures, though, the --rtlib=libgcc has no effect at compile-time, and Clang printed a warning. It looks like this stage2 compiler is only used to target Android, though, so it seemed simpler to just override the default.

Feb 23 2021, 9:51 PM
rprichard requested review of D97356: [sanitizer] Pass -e dotbytes=10m to wget.
Feb 23 2021, 9:43 PM
rprichard requested review of D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.
Feb 23 2021, 9:43 PM
rprichard requested review of D97354: [sanitizer] Set default rtlib to libgcc.
Feb 23 2021, 9:43 PM

Feb 22 2021

rprichard committed rG729899f7b6bf: [libunwind] unw_* alias fixes for ELF and Mach-O (authored by rprichard).
[libunwind] unw_* alias fixes for ELF and Mach-O
Feb 22 2021, 4:55 PM
rprichard closed D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 22 2021, 4:54 PM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

The coff-dwarf.test buildbot failures were fixed by https://github.com/llvm/llvm-project/commit/0fd7c31a098efdfaa5a57dbac6e9c0921b00a999 (on Feb 11).

Feb 22 2021, 4:53 PM · Restricted Project, Restricted Project, Restricted Project

Feb 19 2021

rprichard added a comment to D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.

For reference, I know of four ways that LLVM's libunwind is currently linked into programs:

  • Fuchsia/Windows (i.e. Clang's default behavior): it's part of libc++, e.g.:
    • Fuchsia:
      • fuchsia/prebuilt/third_party/clang/linux-x64/lib/x86_64-unknown-fuchsia/c++/libc++.so is INPUT(libc++.so.2 -lunwind -lc++abi).
      • fuchsia/prebuilt/third_party/clang/linux-x64/lib/x86_64-unknown-fuchsia/c++/libc++.a is an archive that contains the libunwind object files.
    • In https://github.com/mstorsjo/llvm-mingw/releases/tag/20201020:
      • llvm-mingw\x86_64-w64-mingw32\bin\libc++.dll uses _Unwind_Resume from libunwind.dll
      • llvm-mingw\x86_64-w64-mingw32\lib\libc++.dll.a also seems to import _Unwind_Resume from libunwind.dll
      • llvm-mingw\x86_64-w64-mingw32\lib\libc++.a has the libunwind object files in it
  • FreeBSD: libclang_rt.builtins and libunwind are repackaged into libraries that look like libgcc, linked implicitly.
  • Darwin: it's part of libSystem, linked implicitly.
  • crosstool in google3: I think this build system is passing --unwindlib=libunwind to the driver.
Feb 19 2021, 6:15 PM · Restricted Project

Feb 16 2021

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

Ping.

Feb 16 2021, 2:47 PM · Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Maybe this is blocked on someone from Apple reviewing the Mach-O parts?

Feb 16 2021, 2:47 PM · Restricted Project, Restricted Project, Restricted Project

Feb 11 2021

rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Rebase and fix merge conflict in gn file.

Feb 11 2021, 9:52 PM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Update libunwind/src/BUILD.gn for macro name change.

Feb 11 2021, 9:49 PM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D96563: gn build: Support cross-compiling libunwind for Android..

The Android part of this change looks fine to me.

Feb 11 2021, 6:33 PM · Restricted Project
rprichard added a comment to D96560: libunwind: Don't attempt to authenticate a null return address..
In D96560#2558737, @pcc wrote:

It seems OK to me. Does it make sense to also skip (pc == 0) in UnwindCursor<A, R>::setInfoForSigReturn?

Hmm, that seems redundant with the check that I'm adding here. Let's start with one and we can reconsider if we find another bug here.

Feb 11 2021, 6:25 PM · Restricted Project, Restricted Project
rprichard added a comment to D96560: libunwind: Don't attempt to authenticate a null return address..

It seems OK to me. Does it make sense to also skip (pc == 0) in UnwindCursor<A, R>::setInfoForSigReturn?

Feb 11 2021, 4:37 PM · Restricted Project, Restricted Project

Feb 10 2021

rprichard added reviewers for D96404: [Android] Default to --rtlib=compiler-rt: danalbert, srhines, pcc.

Adding glandium and thakis for Firefox and Chrome. e.g. I suspect this change would cause the same sort of breakage seen in D95166.

Feb 10 2021, 3:11 AM · Restricted Project
rprichard added reviewers for D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt: srhines, danalbert, pcc.
Feb 10 2021, 3:05 AM · Restricted Project
rprichard requested review of D96404: [Android] Default to --rtlib=compiler-rt.
Feb 10 2021, 3:03 AM · Restricted Project
rprichard requested review of D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.
Feb 10 2021, 3:03 AM · Restricted Project
rprichard retitled D93003: [libunwind] unw_* alias fixes for ELF and Mach-O from [libunwind][ELF] Hide unw_getcontext with LIBUNWIND_HIDE_SYMBOLS to [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 10 2021, 12:56 AM · Restricted Project, Restricted Project, Restricted Project

Feb 9 2021

rprichard updated subscribers of D91841: [builtins] Define fmax and scalbn inline.

Adding a couple of other people as possible reviewers.

Feb 9 2021, 9:42 PM · Restricted Project
rprichard updated subscribers of D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

emaste: Just a heads up in case FreeBSD is affected. FWIW, I noticed that libgcc_eh.a on FreeBSD 12.1 doesn't hide the _Unwind_* or unw_* symbols. The build system is defining VISIBILITY_HIDDEN but libunwind doesn't respond to that name. FreeBSD libgcc_eh.a also defines hidden symbols named logAPIs, logUnwinding, and logDWARF. libunwind defines these internal names if NDEBUG isn't defined. They can break statically-linked programs on FreeBSD (e.g. duplicate symbol linker errors).

Feb 9 2021, 8:50 PM · Restricted Project, Restricted Project, Restricted Project
rprichard added inline comments to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 9 2021, 7:57 PM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Restore Mach-O alias fixes.

Feb 9 2021, 7:49 PM · Restricted Project, Restricted Project, Restricted Project

Feb 8 2021

rprichard added inline comments to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 8 2021, 11:24 PM · Restricted Project, Restricted Project, Restricted Project

Feb 5 2021

rprichard retitled D93003: [libunwind] unw_* alias fixes for ELF and Mach-O from [libunwind] LIBUNWIND_HERMETIC_STATIC_LIBRARY fixes to [libunwind][ELF] Hide unw_getcontext with LIBUNWIND_HIDE_SYMBOLS.
Feb 5 2021, 4:04 AM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

After renaming the CMake option, CMake prints a warning if I set the old option:

CMake Warning:
  Manually-specified variables were not used by the project:
Feb 5 2021, 4:03 AM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Just fix ELF and leave Mach-O as-is.

Feb 5 2021, 4:02 AM · Restricted Project, Restricted Project, Restricted Project

Feb 3 2021

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

Implementing the relevant functions called by divxc3 is one choice, another choice is to emulate libgcc - don't use scalbn.

Feb 3 2021, 6:11 PM · Restricted Project

Jan 26 2021

rprichard accepted D95492: Pack relocations for Android when possible..
Jan 26 2021, 5:05 PM · Restricted Project

Jan 16 2021

rprichard added inline comments to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Jan 16 2021, 12:38 AM · Restricted Project, Restricted Project, Restricted Project

Jan 14 2021

rprichard added a comment to D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

Could you add a bit of a comment explaining why the XOM case is not protected against?

I think I can expand on the comment.

libunwind can be used for generating backtraces during regular execution (e.g. profiling) and crashing if the XOM is in use seems unfortunate.

For profiling, I assume the unwind info needs to be accurate at every instruction? I know that's definitely not the case for AArch64, but I thought it's still only mostly-accurate on other archs? I don't *really* know that unwinding through a signal handler is important for Android, but I don't know how to rule it out either, and we do have a test for it. I think the test predated Android's libunwindstack unwinder. Maybe someone could be using _Unwind_Backtrace in a segfault handler, and that probably avoids the async-unwind-info problem most of the time. But I also don't think that's how third-party Android crash dumpers work.

Sure, though, libunwind is generic and is used outside of android as well, including other AArch64 targets, so we do need to consider those use cases while making changes.

Jan 14 2021, 4:16 PM · Restricted Project, Restricted Project

Jan 13 2021

rprichard committed rGc82deed6764c: [libunwind] Unwind through aarch64/Linux sigreturn frame (authored by rprichard).
[libunwind] Unwind through aarch64/Linux sigreturn frame
Jan 13 2021, 4:40 PM
rprichard closed D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.
Jan 13 2021, 4:39 PM · Restricted Project, Restricted Project

Jan 12 2021

rprichard added a comment to D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

Can I get a code-owner to review this?

Jan 12 2021, 9:45 PM · Restricted Project, Restricted Project
rprichard updated the summary of D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.
Jan 12 2021, 9:45 PM · Restricted Project, Restricted Project
rprichard updated the diff for D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

Enable unwind_leaffunction.pass.cpp for AArch64 Linux.

Jan 12 2021, 9:44 PM · Restricted Project, Restricted Project

Jan 7 2021

rprichard committed rG658a1be76ba2: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS (authored by rprichard).
[builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS
Jan 7 2021, 5:56 PM
rprichard closed D93431: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS.
Jan 7 2021, 5:56 PM · Restricted Project

Dec 17 2020

rprichard retitled D93431: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS from [builtins] Add COMPILER_RT_BUILTINS_HERMETIC_STATIC_LIBRARY to [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS.
Dec 17 2020, 4:12 PM · Restricted Project
rprichard updated the diff for D93431: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS.

Rename flag to COMPILER_RT_BUILTINS_HIDE_SYMBOLS.

Dec 17 2020, 4:11 PM · Restricted Project
rprichard added a comment to D93467: [ELF] Rename R_TLS to R_TPREL and R_NEG_TLS to R_TPREL_NEG. NFC.

I also think this is a good change.

Dec 17 2020, 2:35 PM · Restricted Project

Dec 16 2020

rprichard added inline comments to D93431: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS.
Dec 16 2020, 8:38 PM · Restricted Project
rprichard added reviewers for D93431: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS: kongyi, srhines, compnerd.

I'm using this change in https://android-review.googlesource.com/c/toolchain/llvm_android/+/1532841.

Dec 16 2020, 5:14 PM · Restricted Project
rprichard requested review of D93431: [builtins] Add COMPILER_RT_BUILTINS_HIDE_SYMBOLS.
Dec 16 2020, 5:06 PM · Restricted Project
rprichard added a comment to D93331: [ELF] Reject local-exec TLS relocations for -shared.

It looks OK to me.

Dec 16 2020, 2:24 AM · Restricted Project

Dec 11 2020

rprichard added a comment to D56977: [builtins] Do not set hidden attribute on Android.

Keep exporting these symbols on Android for compatibility.

Dec 11 2020, 10:44 PM

Dec 10 2020

rprichard added reviewers for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O: phosek, mstorsjo, ldionne.
Dec 10 2020, 1:36 AM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

I assume the LIBUNWIND_HERMETIC_STATIC_LIBRARY setting isn't used on Darwin -- it leaves unw_* symbols as Extern and not PrivateExtern. Maybe the CMake file could reject that flag on Darwin instead of trying to make it work.

Dec 10 2020, 1:33 AM · Restricted Project, Restricted Project, Restricted Project
rprichard retitled D93003: [libunwind] unw_* alias fixes for ELF and Mach-O from [libunwind] Fix ELF/Mach-O visibility for unw_getcontext to [libunwind] LIBUNWIND_HERMETIC_STATIC_LIBRARY fixes.
Dec 10 2020, 12:38 AM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Fix LIBUNWIND_HERMETIC_STATIC_LIBRARY on macOS.

Dec 10 2020, 12:37 AM · Restricted Project, Restricted Project, Restricted Project

Dec 9 2020

rprichard requested review of D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Dec 9 2020, 11:14 PM · Restricted Project, Restricted Project, Restricted Project

Dec 2 2020

rprichard added a comment to D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

That could work. Some similar approaches:

  • process_vm_readv
  • pipe+write
  • open /proc/self/mem
Dec 2 2020, 10:37 PM · Restricted Project, Restricted Project
rprichard updated the diff for D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

Update comments.

Dec 2 2020, 9:27 PM · Restricted Project, Restricted Project

Nov 30 2020

rprichard updated the diff for D91841: [builtins] Define fmax and scalbn inline.

Add +/- to __compiler_rt_scalbnX comment.

Nov 30 2020, 8:47 PM · Restricted Project
rprichard updated the diff for D91841: [builtins] Define fmax and scalbn inline.

Rename new fmax/scalbn fp_lib.h params from a/b to x/y for consistency with the new tests and with the existing __compiler_rt_logb*.

Nov 30 2020, 8:43 PM · Restricted Project
rprichard added inline comments to D91841: [builtins] Define fmax and scalbn inline.
Nov 30 2020, 8:33 PM · Restricted Project

Nov 23 2020

rprichard updated the diff for D91841: [builtins] Define fmax and scalbn inline.

Remove obsoleted crt_fmax[f] and crt_scalbn[f] functions.

Nov 23 2020, 9:03 PM · Restricted Project
rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

The __compiler_rt_{logb,scalbn,fmax}* functions don't work with x87 extended-precision FP, and I think FPUtil would handle that. Perhaps the existing inline functions could be extended to support x87, though.

Nov 23 2020, 8:59 PM · Restricted Project

Nov 19 2020

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

The existing __compiler_rt_logb* inline functions were also added to address PR32279, in D49514. On Android, all of fmax*/logb*/scalbn* are in libm, not libc. I commented more on the bug: https://bugs.llvm.org/show_bug.cgi?id=32279#c7.

Nov 19 2020, 11:35 PM · Restricted Project
rprichard added reviewers for D91841: [builtins] Define fmax and scalbn inline: compnerd, scanon, rupprecht, efriedma.
Nov 19 2020, 11:29 PM · Restricted Project
rprichard updated the diff for D91841: [builtins] Define fmax and scalbn inline.

Switch scalbn calls in ppc/divtc3.c to __compiler_rt_scalbn. I verified that, after doing so, libclang_rt.builtins-powerpc64le.a has no unresolved symbols for fmax*/logb*/scalbn*.

Nov 19 2020, 11:22 PM · Restricted Project
rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

With this change, I think PR32279 is still an issue with non-standard FP formats, like the x86 80-bit extended-precision format. In principle, it seems straightforward to extend the __compiler_rt_* inline functions to handle that format.

Nov 19 2020, 9:47 PM · Restricted Project
rprichard requested review of D91841: [builtins] Define fmax and scalbn inline.
Nov 19 2020, 9:17 PM · Restricted Project

Nov 10 2020

rprichard added a comment to D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

Could you add a bit of a comment explaining why the XOM case is not protected against?

Nov 10 2020, 12:14 AM · Restricted Project, Restricted Project