forked from OSchip/llvm-project
a8083d42b1
This patch attempts to fix a compiler crash that occurs when long double type is used with -mno-x87 compiler option. The option disables x87 target feature, which in turn disables x87 registers, so CG cannot select them for x86_fp80 LLVM IR type. Long double is lowered as x86_fp80 for some targets, so it leads to a crash. The option seems to contradict the SystemV ABI, which requires long double to be represented as a 80-bit floating point, and it also requires to use x87 registers. To avoid that, `long double` type is disabled when -mno-x87 option is set. In addition to that, `float` and `double` also use x87 registers for return values on 32-bit x86, so they are disabled as well. Differential Revision: https://reviews.llvm.org/D98895 |
||
---|---|---|
.. | ||
address-space-conversions.cpp | ||
float128.cpp | ||
int128.cpp | ||
kernel-attribute-on-non-sycl.cpp | ||
kernel-attribute.cpp | ||
prohibit-thread-local.cpp | ||
unique-stable-name-multiple-target-crash.cpp | ||
unique_stable_name.cpp |