如果我的代码为一个平台生成LLVM SSA,可能不同于它目前运行的平台,我如何获得FLT_MAX
或FLT_EPSILON
等值(或相同的双精度,或任何其他浮点宽度)?
我猜这是不正确的,一般来说,为我自己的系统获取这些值并使用它们。把问题委托给clang
或gcc
处理,也不是一个可以接受的解决方案。
当生成LLVM代码时,我如何知道为FLT_MAX
发出什么值?
FLT_MAX
/FLT_EPSILON
为C/c++专用实体,不与LLVM连接。因此,您需要求助于C/c++编译器来推导它。或者,您需要保留支持的平台列表,并为每个支持的平台硬编码这些值。