在运行时检测要使用的GCC -march标志

时间:2015-01-20 21:13:13

标签: c gcc cpu-architecture

我正在尝试以编程方式在运行时检测给定CPU的最佳GCC -march标志。我正在开发的程序将根据用户的CPU架构下载优化的二进制文件。所以我必须检测它在这个列表中的架构:

  • core2
  • nehalem
  • westmere
  • sandybridge
  • ivybridge
  • haswell
  • broadwell
  • generic(以上都失败了)。

喜欢这个命令:gcc -march=native -Q --help=target | grep -- '-march=' | cut -f3,当然没有调用GCC(我无法嵌入它)。我找到了GCC的函数__builtin_cpu_is,但它并不支持所有架构。

我正在寻找一种可移植的方式,至少对于GNU / Linux,Windows和OSX而言。我只打算使用GCC作为编译器。

0 个答案:

没有答案