What is optimization?

image.png

GCC Optimization GCC优化方法

image.png
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
image.png

Constant Folding 常量折叠

image.png
image.png
image.png
image.png

Common Sub-expression Elimination 消除公共子表达式

image.png

Dead Code 无用的代码

image.png
image.png
image.png

Strength Reduction 复杂运算简化

image.png

Code Motion 代码移动

image.png

Tail Recursion 尾递归

image.png

Loop Unrolling 循环展开

image.png

Limitations of GCC Optimization

image.png
image.png

Caching

image.png
image.png
image.png
image.png
image.png

Live Session Slides

image.png

Tail recursion example: Lab6 bonus 一个尾递归的例子

image.png
image.png
-O2将递归变成了循环,这样就没有push %rbx操作了。尾递归也是。