[cfe-dev] Target support for __float128 in the front end
Nemanja Ivanovic via cfe-dev
cfe-dev at lists.llvm.org
Fri Mar 25 09:09:44 PDT 2016
I plan to commit the changeset listed in the Phabricator review 15120 (
http://reviews.llvm.org/D15120) which will impact the way Clang treats the
__float128 type, keyword, etc.
Namely, we currently have a workaround that allows Clang to parse some C++
headers (such as type_traits) since they contain template specializations
for __float128. However, this patch establishes that type as a builtin
type, enables the keyword and allows for literals of the type. Since not
all targets have support for what that type is supposed to represent (i.e.
a 128-bit floating point type with IEEE quad-precision semantics), the
default behaviour for all targets is to not enable the type.
This puts targets on which gcc has __float128 support in a situation where
they may not be able to compile programs that include the aforementioned
headers. Namely, if the configuration defines _GLIBCXX_USE_FLOAT128 and the
__float128 type is not enabled in Clang, anything that includes the header
will not compile.
Any target that needs to enable support for this type can do so by
overriding TargetInfo::hasFloat128Type(). When doing so, there may be a
small number of test cases that needs to change if they rely on this
support not being enabled.
I would appreciate it if you would let me know if your target needs to have
this support enabled and if you would be OK with me committing this patch.
As much as I would like to take on as much of this work as possible, please
understand that I do not have access to hardware to allow me to test any
impact to your target if I were to make the change myself (of course, I'm
referring to things that can't be caught by the Clang test cases).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev