我想知道除了 gcc 和 clang 之外是否还有其他编译器提供类似-march=native
选项,如果有,该选项是什么。我已经从另一个问题中明白了(在 Visual C++ 中自动构建最佳可用平台(相当于 gcc 的 -march=native) https://stackoverflow.com/questions/26485709/automatically-building-for-best-available-platform-in-visual-c-equivalent-to)微软的编译器没有该选项(除非激活 SSE2 指令集的选项中隐含了该选项,至少不包括 AVX 及更高版本)。
用例很简单:提供 cmake 设置,因此用户可以选择激活和构建,并支持他或她的 CPU 支持的所有“内在函数”。我们目前拥有针对我们目标的实际内在函数(例如 x86 上的 SSE4.2 和/或 PCLMUL)的检测逻辑,但当必须考虑更多平台和编译器时,该逻辑可能会变得非常复杂。简化它们可能会导致编译器开始在运行时检查保护的预期位置之外使用不受支持的指令集。
目前,Microsoft Visual C++ 编译器不提供等效标志三月=本地人。在构建代码之前,您必须手动或使用脚本找出适当的标志。
关于英特尔 C++ 编译器,xHost 和 QxHost https://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/index.htm#GUID-54318F64-F8B3-4583-845E-327E0A5A6978.htm标志具有基本相同的目的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)