gpt4 book ai didi

gcc - 我可以使用哪些行军/音乐选择?

转载 作者:行者123 更新时间:2023-12-04 11:18:37 27 4
gpt4 key购买 nike

有没有办法让gcc输出可用的-march = arch选项?我遇到构建错误(尝试-march=x86_64),我不知道我的选择是什么。

我使用的编译器是gcc的专有包装,它似乎不喜欢-march=skylake。标志应该是相同的,因此我假设要发送给gcc的所有选项以转储体系结构对于此包装器来说都是相同的。

我设法使gcc使用伪造的参数出错,并转储了一个列表,但是现在我正在通过包装器,所以我看不到它。

如何让gcc告诉我它支持什么?

最佳答案

使用gcc --target-help

-march=CPU[,+EXTENSION...]
generate code for CPU and EXTENSION, CPU is one of:
generic32, generic64, i386, i486, i586, i686,
pentium, pentiumpro, pentiumii, pentiumiii, pentium4,
prescott, nocona, core, core2, corei7, l1om, k1om,
iamcu, k6, k6_2, athlon, opteron, k8, amdfam10,
bdver1, bdver2, bdver3, bdver4, znver1, znver2,
btver1, btver2
...


它通常不是像 x86x86-64这样的通用体系结构,而是特定的微体系结构。但是对于具有64位扩展名的通用x86 CPU,存在 x86-64(不是 x86_64)。每种体系结构的完整列表可以在 GCC's -march manual上找到。对于x86:



-march=cpu-type

为计算机类型cpu-type生成指令。与 -mtune=cpu-type仅针对指定的 cpu-type调整生成的代码相反, -march=cpu-type允许GCC生成可能根本不在所示处理器上运行的代码。指定 -march=cpu-type表示 -mtune=cpu-type


...

https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#index-march-13




-march的基准版本为 -march=x86-64时,基准/默认调整选项为 -mtune=generic。这样做的目的是在任何地方都不可怕,即使以额外的指令或代码大小为代价,也避免了性能缺陷。



-march=native将为运行编译器的计算机选择正确的体系结构并对其进行调整,如果编译器无法识别正在运行的CPU的特定型号,则 tune=generic

(例如,Skylake上的旧gcc仍会启用 -mavx2 -mpopcnt -mbmi2,依此类推,但会设置 -mtune=generic而不是更合适的值。)

关于gcc - 我可以使用哪些行军/音乐选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53156919/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com