【问题标题】:GCC: mtune vs march vs mcpuGCC:mtune vs March vs mcpu
【发布时间】:2017-07-31 19:25:25
【问题描述】:

我正在尝试在几个 ARM SBC 上进行一些优化构建,其中每个构建将仅在我正在构建的目标平台上具有兼容性。

我听说 -march 在这里比 -mtune 更可取,因为它会通过生成仅与主机 cpu 兼容的指令来破坏与架构系列中其他 cpu 的向后兼容性。另一方面,-mtune 将保持此兼容性。

但是,我读到 -mcpu 可能是最好的标志,而不是 -march 或 -mtune,因为 -mcpu 是特定于处理器的,而不仅仅是 -marm 指定的更常见的架构(区别类似于 -mcpu=cortex-a8 而不是 -march=armv7-a)。

现在棘手的是,我还了解到 -mcpu 已被弃用,其功能已由 -mtune 接管,这与我之前的 cmets 冲突,即与 -march 和 -marm 相比,使用 -mtune 是不可取的与 -mcpu 相比是不可取的。

基本上,当我根本不关心与其他 cpu 保持兼容性时,哪个标志将为我提供最佳主机性能。

【问题讨论】:

    标签: gcc


    【解决方案1】:

    -mcpu 不幸的是对于不同的目标有不同的语义。它是deprecated for x86(是-mtune 的同义词),但不适用于ARM,它是a sum of -march and -mtune

    所以要回答您的问题 - 在 ARM 上,请始终使用 -mcpu 以获得最佳性能,除非您关心向后兼容性。

    【讨论】:

      猜你喜欢
      • 2013-08-05
      • 2014-08-17
      • 2011-09-18
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 2010-12-09
      • 2017-06-20
      相关资源
      最近更新 更多