- 4
- 0
- 约7.6千字
- 约 52页
- 2018-04-23 发布于河南
- 举报
编译原理课件第八章代码优化
第八章 代码优化 逐条语句进行的代码生成策略经常产生含有大量冗余指令和次最优结构的目标代码。 若存在,且其左右子结点为NODE(B),NODE(c),让n等于找到的结点; n3 n4 R r n1 + 公共表达式 T2 如果A无定义,则把A附加到结点n上并令NODE(A)=n;否则先把A从NODE(A)结点上的附加标识符集中删除,再把A附加到新结点n上并令NODE(A)=n 下面是前面介绍的基本块的DAG生成过程 删除无用赋值 ③ T2=R+r 如果不存在,则建立这样的结点,让n等于建立的结点 否则,查看OP结点, n1 n7 n2 n6 n8 n5 n3 n4 3.14 T0 6.28 T1 R r + T2 * A ,B ,T3 ,T4 ,T5 - T6 * B DAG 生成过程 ① T0=3.14 ② T1=2*T0 ③ T2=R+r ④ A=T1*T2 ⑤ B=A ⑥ T3=2*T0 ⑨ T6=R-r ⑩B=T5*T6 ⑧ T5=T3*T4 ⑦ T4=R+r 此时应去掉B n1 n7 n2 n6 n8 n5 n3 n4 3.14 T0 6.28 T1 R r + T2 * A ,T3 ,T4 ,T5 - T6 * B 生成 DAG ① T0=3.14 ② T1=6.28 ③ T3=6.28 ④ T2=R+r ⑤ T4=T2 ⑥ A=6.28*T2 ⑦ T5=A ⑧ T6=R-r ⑨ B=A*T6 由DAG生成的中间代码G’ G’中已合并了已知量② ⑥ ⑤为无用赋值,G’已删除 ③ ⑦是公共子表达式,删除 ① T0=3.14 ② T1=2*T0 ③ T2=R+r ④ A=T1*T2 ⑤ B=A ⑥ T3=2*T0 ⑦ T4=R+r ⑧ T5=T3*T4 ⑨ T6=R-r ⑩ B=T5*T6 假设T0、T1、T2、T3、T4、T5、T6在后面的基本块中都不使用, S1=R+r A=6.28*S1 S2=R-r B=A*S2 在基本块中应用:合并已知量、临时变量改名等优化技术,可将上述代码变换为: 8.3 循环优化 8.3.1代码外提 实行代码处提时,在循环入口处建立一个新结点,称为前置结点 循环中的代码优化可采用: 代码外提、强度削弱和删除归纳变量 循环中外提的代码将通通外提到前置结点中。 对下面程序段: Int a[10,10] For I=1 to 10 do A[I,2*j]=A[I,2*j]+1 其生成的中间代码为: (1) I=1 (2) if I10 goto (15) (3)T1=2*j (4)T2=10*I (5)T3=T2+T1 (6)T4=addr(A)-11 (7)T5=2*J (8)T6=10*I (9)t7=T6+T5 (10)T8=addr(A)-11 (11)T9=T8[T7] (12)T4[T3]=T9+1 (13)I=I+1 (14)GOTO B2 程序流图 B1 B2 B3 *辛明影 * 1、源程序级:局部优化、循环优化、全局优化 1、节省时间 2、节省空间 二、优化技术 一、优化目的 2、目标代码级的优化 三、优化原则 1、等价原则 2、有效原则 3、合算原则 Void quicksort(a,m,n); Int m,n,a[]; { int I,j; int v,x; if(n=m) return; I=m-1;j=n;v=a[n] While(1){ Do {I=I+1;}while (a[I]v); Do{j=j-1;}while(a[j]v); If(I=j)break; X=a[I];a[I]=a[j];a[j]=x; } X=a[I];a[I]=a[n];a[n]=x; Quicksort(m,j);quicksort(I+1,n); } 例:快速排序程序 8.1 优化的主要种类 i=m-1 j=n t1=4*n v=a[t1] i=i+1 t2=4*i t3=a[t2] If t3v goto B2 j=j-1 t4=4*j t5=a[t4] If t5v goto B3 If I=j goto b6 t11=4*I x=a[t11] t12=4*I t13=4*n t14=a[t13] a[12]=t14 t14=4*n a[15]=x t6=4*I x=a[t6] t7=4*i t8=4*j t9=a[t8] a[t7]=t9 t10=4*j a[t10]x goto b2 中间代码程序段 B1
您可能关注的文档
- ccna官方配套教材课件-4广域网技术.ppt
- 110KVOPGW光缆技术协议书.doc
- 综合写作范文.doc
- 咸阳市口腔医院年度工作总结.doc
- 2技术文件和图纸.doc
- 初中英语ppt.ppt
- VOA官方英语词汇.doc
- 关于比较和比较级的用法.ppt
- 国家基本药物贵州省增补药品目录(2012版).doc
- 哈尔餐饮业问卷.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)