首页 文章

在其他编译器中等同于gcc / clang的march = native?

提问于
浏览
1

我想知道是否有其他编译器比gcc和clang提供类似 -march=native 选项的东西,如果有的话,那个选项是什么 . 我已经从另一个问题(Automatically building for best available platform in visual c++ (equivalent to gcc's -march=native))中了解到,Microsoft 's compilers do not have that option (unless it' s在激活SSE2指令集的选项中隐含,至少包括AVX和更高版本 .

用例很简单:提供一个cmake设置,因此用户可以选择激活和构建,支持他或她的CPU支持的所有“内在函数” . 我们目前有针对我们目标的实际内在函数的检测逻辑(例如x86上的SSE4.2和/或PCLMUL),但是当需要考虑更多平台和编译器时,逻辑可能会变得非常复杂 . 简化它们可能会导致编译器开始在受运行时检查保护的预期位置之外使用不受支持的指令集 .

1 回答

  • 3

    目前,Microsoft Visual C编译器不提供与 march=native 等效的标志 . 在构建代码之前,您必须手动或使用脚本找出适当的标志 .

    关于Intel C编译器,xHost and QxHost标志具有基本相同的目的 .

相关问题