llvm-project/clang/test/SemaSYCL
Andrew Savonichev a8083d42b1 [X86][clang] Disable long double type for -mno-x87 option
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
2021-11-03 12:08:39 +03:00
..
address-space-conversions.cpp [SYCL] Enable `opencl_global_[host,device]` attributes for SYCL 2021-05-18 10:27:35 +03:00
float128.cpp [X86][clang] Disable long double type for -mno-x87 option 2021-11-03 12:08:39 +03:00
int128.cpp Reland [clang] Check unsupported types in expressions 2021-10-15 13:55:36 +03:00
kernel-attribute-on-non-sycl.cpp
kernel-attribute.cpp [SYCL] Rework the SYCL driver options 2021-03-17 08:27:19 -04:00
prohibit-thread-local.cpp [SYCL] Rework the SYCL driver options 2021-03-17 08:27:19 -04:00
unique-stable-name-multiple-target-crash.cpp Replace 'magic static' with a member variable for SCYL kernel names 2021-05-27 13:46:31 -07:00
unique_stable_name.cpp Change __builtin_sycl_unique_stable_name to just use an Itanium mangling 2021-09-28 06:41:03 -07:00