我正在尝试在几个ARM SBC上进行一些优化构建,其中每个构建仅在我正在构建的目标平台上具有兼容性.
我听说-march比-mtune更优选,因为它会通过生成仅与主机cpu兼容的指令来打破与架构系列中其他cpus的向后兼容性.另一方面,-mune将保持这种兼容性.
但是,我已经读过-mcpu可能是设置的最佳标志而不是-march或-mtune,因为-mcpu特定于处理器,而不仅仅是-marm指定的更常见的体系结构(类似的东西的差异 - mcpu = cortex-a8 over -march = armv7-a).
现在最棘手的事情是我还在读取-mcpu被弃用并且它的功能被-mtune接管,这与我之前关于使用-mtune的评论相矛盾,与-march和-marm相比是不可取的与-mcpu相比.
基本上,当我不关心与其他cpu完全兼容时,哪个标志会给我主机的最佳性能.
yug*_*ugr 11
-mcpu不幸的是,不同的目标有不同的语义.它为过时的x86(是的代名词-mtune)的ARM,它的但不是的总和-march及-mtune.
所以要回答你的问题 - 在ARM上,总是使用-mcpu以获得最佳性能,除非你关心向后兼容性.