基于DAG的基本块优化
基于DAG的基本块优化1.实验目的与任务了解基本块的DAG表示及其应用,掌握局部优化的基本方法。2.实验要求设计一个转换程序,把由四元式序列表示的基本块转换为DAG,并在构造DAG的过程中,进行合并已
. 基于DAG的基本块优化 1.实验目的与任务 了解基本块的DAG表示及其应用,掌握局部优化的基本方法。 2.实验要求 设计一个转换程序,把由四元式序列表示的基本块转换为DAG,并在构造DAG的过程 中,进行合并已知量、删除无用赋值及删除公共子表达式等局部优化处理。最后再从所得到 的DAG出发,按原来生成DAG各个结点的顺序,重建四元式序列形式的基本块。 3.实验内容 (1)DAG的结点类型只考虑0型、1型和2型,如下表所示。 类型 四元式 DAG结点 0型 (=,B, ,A) A ① B (op,B, ,A) ② 1型 op ① (op,B,C,A) 2型 (=[ ],B,C,A) (jrop,B,C,A) (2)由基本块构造DAG算法如下: while(基本块中还有未处理过的四元式) { 取下一个四元式Q; newleft=newright=0; if(getnode(B)= =NULL){ makeleaf(B); newleft=1; } switch(Q的类型){ case 0: n= getnode(B); insertidset(n,A); break; case 1: if(isconsnode(B)){ p=calcons(Q.op,B); .

