文档详情

第10章代码优化和目标代码生成讲述.ppt

发布:2017-04-04约2.15千字共28页下载文档
文本预览下载声明
第十一章 代码优化 11 . 1 什么是代码优化 11 . 2 局部优化 11 . 3 控制流程分析和循环 11 . 4 数据流分析举例 ?优化技术简介 1.删除多余运算 2.循环不变代码外提 3.强度削弱 4.变换循环控制条件 5.合并已知量与复写传播 6.删除无用赋值 P:=0 for I:=1 to 20 do P:=P+A[I]*B[I] (1)P:=0 (2)I:=1 (3)T1:=4*I (4)T2:=addr(A)-4 (5)T3:=T2[T1] (6)T4:=4*I (7)T5:=addr(B)-4 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) (1)P:=0 (2)I:=1 (3)T1:=4*I (5)T3:=T2[T1] (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (6)T4:=T1 (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(3) (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (12)if I=20 goto(5) (3)T1:=4*I (3‘)T1:=T1+4 (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4*I (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T4] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (3’)T1:=T1+4 (12)if I=20 goto(5) (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[ ] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (3’)T1:=T1+4 (12)if =80 goto(5) (3)T1:=4 T1 T1 (1)P:=0 (2)I:=1 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4 (5)T3:=T2[T1] (6)T4:=T1 (8)T6:=T5[T1] (9)T7:=T3*T6 (10)P:=P+T7 (11)I:=I+1 (3’)T1:=T1+4 (12)if T1=80 goto(5) (1)P:=0 (4)T2:=addr(A)-4 (7)T5:=addr(B)-4 (3)T1:=4 (5)T3:=T2[T1] (8)T6:=T5[T1] (9)T7:=T3*T6 (10)P:=P+T7 (3’)T1:=T1+4 (12)if T1=80 goto(5) (1) read (C) (2) A:= 0 (3) B:= 1 (4) L1: A:=A + B (5) if B= C goto L2 (6) B:=B+1 (7) goto L1 (8) L2: write (A) (9) halt 基本块的DAG表示及其应用 DAG Directed Acyclic Graph 无环路有向图 基本块的DAG是在结点上带有标记的DAG 叶结点 独特的标识符(名字,常数)标记 内部结点 运算符号标记 各个结点 附加标识符标记 用 DAG 进行基本块的优化 四元式 DAG 结点 0 型: A:=B(:=,B, — ,A) n1 A B 1 型 : A:=op B(op,B, — ,A) n2 A
显示全部
相似文档