gpt4 book ai didi

optimization - GCC -mthumb 反对 -marm

转载 作者:行者123 更新时间:2023-12-03 15:27:14 35 4
gpt4 key购买 nike

我正在研究用 GCC 编译的 ARM C/C++ 代码的性能优化。 CPU 是 Tegra 3。
据我所知标志-mthumb表示生成旧的 16 位 Thumb 指令。在不同的测试中,-marm 的性能提高了 10-15%反对-mthumb .

-mthumb仅用于兼容性和性能,而 -marm一般比较好?
我问是因为 android-cmake 使用了 -mthumb在 Release模式和 -marm在调试中。这让我很困惑。

最佳答案

Thumb 不是较旧的指令集,而是较新的指令集。当前版本是 Thumb-2,它是一个混合的 16/32 位指令集。 Thumb1 指令集是原始 ARM 指令集的压缩版本。 CPU 将获取指令,将其解压缩到 ARM 中,然后对其进行处理。如今(ARMv7 及更高版本),除了性能关键或系统代码之外,Thumb-2 是首选。例如,GCC 默认为 ARMv7 生成 Thumb2(就像您的 Tegra3),因为 16/32 位 ISA 提供的更高代码密度允许更好的 icache 利用率。但这是在普通基准测试中很难衡量的东西,因为大多数基准测试无论如何都适合 L1 icache。

欲了解更多信息,请查看维基百科网站:http://en.wikipedia.org/wiki/ARM_architecture#Thumb

关于optimization - GCC -mthumb 反对 -marm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062936/

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