We currently have strict floating point/constrained floating point enabled for all targets. Constrained SDAG nodes get converted to the regular ones before reaching the target layer. In theory this should be fine.
However, the changes are exposed to users through multiple clang options already in use in the field, and the changes are _completely_ _untested_ on almost all of our targets. Bugs have already been found, like "https://bugs.llvm.org/show_bug.cgi?id=45274".
This patch disables constrained floating point options in clang everywhere except X86 and SystemZ. A warning will be printed when this happens.
I don't think we need this for now. Close is not quite there. @steven.zhang I would prefer that we initially turn this off and only flip it on once the support is complete.
Also, is the support that is currently under development for both 32 and 64 bit architectures? If it is 64 bit only, then we can enable it only there once it is done.