我受到嵌入式 PowerPC 系统 128Kb 可执行文件大小的限制。不幸的是,由于我认为是编译器错误(由于未定义的引用和类似原因导致-Os
链接失败),使用优化大小的选项不起作用,而所有链接都很好。这是 gcc 4.8.1 host=i86, target=powerpc-wrs-vxworks。-Os
_restgpr_30_x
-O[123]
我的下一个想法是有选择地使用各种优化选项。但是这些选项中的哪一个会减少代码大小而不是执行时间?我继续单独使用一些选项,发现 -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
使用时减少代码大小。还有比实验更系统的方法吗?GCC 文档描述了各种选项,但没有说明它们是否更适合执行时间加速或代码大小减少。