gcc - 调用所有标志 -Os 手动使用不会产生相同的结果(GCC)
问题描述
我使用 -O1 编译并手动使用以下标志:
-fthread-jumps
-falign-functions -falign-jumps
-falign-loops -falign-labels
-fcaller-saves
-fcrossjumping
-fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks
-fdevirtualize
-fexpensive-optimizations
-fgcse -fgcse-lm
-fhoist-adjacent-loads
-finline-small-functions
-findirect-inlining
-fipa-sra
-foptimize-sibling-calls
-fpartial-inlining
-fpeephole2
-fregmove
-freorder-blocks -freorder-functions
-frerun-cse-after-loop
-fsched-interblock -fsched-spec
-fschedule-insns -fschedule-insns2
-fstrict-aliasing -fstrict-overflow
-ftree-switch-conversion -ftree-tail-merge
-ftree-pre
-ftree-vrp
除了
-falign-functions -falign-jumps -falign-loops
-falign-labels -freorder-blocks -freorder-blocks-and-partition
-fprefetch-loop-arrays -ftree-vect-loop-version
这应该对应于 -Os 根据https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html所做的(我使用 GCC 4.8.2)。但是,生成的二进制文件与我使用 -Os 时不同。
(注意,我正在为 mcu68332 进行交叉编译)。
为什么会这样?
解决方案
推荐阅读
- batch-file - 如何在命令提示符中无限运行批处理文件
- python - 在 discord.py 中添加和响应响应
- javascript - eCharts 工具提示打字稿
- android - Android反向动画不尊重持续时间
- java - 调用 get 方法时,hashmap 中的更新键返回 null
- ios - CocoaPods 找不到 pod“boost-for-react-native”的兼容版本
- r - 打印参数的值,包括它的类型
- flutter - 使用 Flutter 获取设备货币
- r - 使用 get() 函数合并数据集
- python - 提高增量仅适用于 button.clicked.connect 的第一次运行