哪个gcc选项减少代码大小?

Jen*_*ens 6 c gcc powerpc compiler-optimization compiler-options

我受限于嵌入式PowerPC系统的128Kb限制可执行文件大小.不幸的是,使用选项-Os优化大小不起作用,因为我认为是编译器错误(-Os由于未定义的引用_restgpr_30_x和类似的链接失败),而-O[123]所有链接都很好.这是使用gcc 4.8.1 host = i86,target = powerpc-wrs-vxworks.

我的下一个想法是有选择地使用各种优化选项.但是这些选项中的哪一个会减少代码大小而不是执行时间?我接着在隔离中使用了一些选项,并发现-O2除了

-fno-caller-saves
-fno-cse-follow-jumps
-fno-hoist-adjacent-loads
-fno-inline-small-functions
-fno-optimize-sibling-calls
-fno-peephole2
-fno-reorder-functions
-fno-rerun-cse-after-loop
-fno-tree-vrp
-fno-reorder-blocks
-fno-tree-vect-loop-version
Run Code Online (Sandbox Code Playgroud)

使用时减少代码大小.有比实验更系统的方法吗?GCC文档描述了各种选项,但没有说它们是否更适合执行时间加速或代码大小减少.

Chi*_*sai 0

您可以剥离构建二进制文件以进一步删除所有调试。

  1. 首先使用默认设置进行构建。
  2. 构建完成后剥离二进制文件。

    your_toolchain-strip a.out

例如arm-none-linux-gnueabi-strip a.out