编译器笔记47-代码优化-基本块的优化

2020-03-11  本文已影响0人  衣忌破

基本块的优化

很多重要的局部优化技术首先把一个基本块转换成为一个无环有向图(directed acyclic graph , DAG)

基本块的DAG表示

例.png

基本块中的每个语句s都对应一个内部结点N

基于基本块的DAG删除无用代码

从一个DAG上删除所有没有附加活跃变量(活跃变量是指其值可能会在以后被使用的变量)的根结点(即没有父结点的结点)。重复应用这样的处理过程就可以从DAG中消除所有对应于无用代码的结点。

例.png

数组元素赋值指令的表示

例.png

根据基本块的DAG可以获得一些非常有用的信息

从DAG到基本块的重组

例.png 例.png
上一篇下一篇

猜你喜欢

热点阅读