编译原理与chapter8 .pptVIP

  • 3
  • 0
  • 约4.4千字
  • 约 21页
  • 2017-10-04 发布于浙江
  • 举报
编译原理与chapter8

第八章 基本块和轨迹 Basic Blocks and Traces 计算机科学与技术学院 刘 慧 canonical(规范的):被尽可能地简化到最简单或最清楚样式的。 语义分析阶段生成的中间语言树必须转换成汇编语言或机器语言: Tree语言的操作符都经过了仔细的选择以便与大多数机器的能力相匹配; 然而,Tree语言中存在一些与机器语言不能完全对应的情况,也存在一些与编译优化分析相冲突的情况。 Tree语言表示的程序和机器语言程序之间存在的不匹配(mismatch)情况: CJUMP指令,真正的机器语言的转移指令在条件为假时下降至下一条指令。 ESEQ结点会使得子树的不同计算顺序产生不同的结果。 在表达式中使用CALL结点情况类似。 当企图将参数送入固定的形参寄存器集合时,在一个CALL结点的参数表达式中使用另一个CALL结点会出现问题。 对于任意一棵树,将它重写为等价的没有上述任何一种情况的树: 重写成一列不含SEQ和ESEQ结点的规范树(canonical tree); 将这一列树分组组合成其内不含转移和标号的基本块(basic block)集合; 对基本块排序并形成一组轨迹(trace),轨迹中每一个CJUMP之后都直接跟随它的false标号。 8.1 Canonical Trees Transformations on ESEQ The idea to eliminate

文档评论(0)

1亿VIP精品文档

相关文档