[llvm-bugs] [Bug 42351] New: std::condition_variable::wait_for unconditionally uses 'long double' arithmetic, using emulation code on ARM
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Jun 20 18:40:46 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=42351
Bug ID: 42351
Summary: std::condition_variable::wait_for unconditionally uses
'long double' arithmetic, using emulation code on ARM
Product: libc++
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: unassignedclangbugs at nondot.org
Reporter: jacob.benoit.1 at gmail.com
CC: llvm-bugs at lists.llvm.org, mclow.lists at gmail.com
See
https://git.llvm.org/klaus/libcxx/blob/release_37/include/__mutex_base#L-379
Use of 'long double' here may seem innocuous from a x86 perspective, but on ARM
(both A32 and A64) it causes the compiler to emit emulation code. I can live
with the slowness in this context, but we discovered this while debugging a
binary size regression (+8k) from a change to a program that made it use
wait_until (which, in current libc++ implementation, calls wait_for).
Top symbols added:
size (bytes) type name
+0000000000002836 t __subtf3
@@ -127,0 +129 @@
+0000000000001760 t __multf3
@@ -934,0 +937,2 @@
+0000000000000316 t __lttf2
+0000000000000316 t __letf2
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190621/92e07b6e/attachment-0001.html>
More information about the llvm-bugs
mailing list