禁用编译时已知表达式的 GCC 简化

Disable GCC simplification of expressions known at compile time

假设我有以下 C 行:

int a = 4 + 7;

编译此行时,GCC 将始终生成类似 mov DWORD PTR [rbp-X], 0xb 的结果,因为此计算的结果是常量并且在编译时已知。有没有办法禁用此行为以使用 mov 4,改为添加 7?

我通过快速搜索找到了 -O0 或 -OG 标志,但它们关闭了其他类型的优化,例如函数应在内存中对齐这一事实。

Is there a way to disable this behaviour to have a mov 4, add 7 instead?

没有。基本常量表达式的计算内置于编译器中。