Some recent commits are quite disturbing, but I can understand if it
This commit and it's message for example
Taking one random built-in as an example
A quick google search using that as a keyword brings up a small
handful of source publicly available using it.
Removing the usage from the internal header implementation +1 , but
removing support for it entirely seems like a regression.
Clang has never exposed the same set of builtins as GCC, though:
I don’t think we need to keep our IA32 vector builtin interface stable when the *mmintrin.h headers already provide a stable, portable, cross-vendor interface to the same functionality.
I didn't mention gcc.. I agree they shouldn't be used in the wild, but
Why not leave the built-in support and under the hood just map that to
something more portable? This is a pretty low cost (zero?) maintenance
Intentionally breaking stuff without at least giving any warning or
marking as deprecated in a major release 1st.. Is this an exception
because __built-ins are grey area support?
Well, it can be considered a break for IR purposes. As such, it might be
a better idea to just flag the builtins as deprecated / obsolete and
wait for the next release.
What Reid is saying has been our policy from the beginning, there’s even a script in the repository (that I sadly haven’t updated in years) that helps handle the transition between builtins and the *mmintrin.h headers.
I agree that we don’t need to support undocumented builtins.
Eric, as I’m the one who deleted this builtin, and probably many previous ones. Should I look into updating the script?
If you’d like to it’d be lovely.