05_中间代码生成

Charlie

静态单赋值(Static Single Assignment, SSA)是编译器中间表示中非常重要的一个概念,它是一种变量的命名约定。当程序中的每个变量都有且只有一个赋值语句时,称一个程序是 SSA 形式的。LLVM IR采用静态单赋值。

控制流语句翻译

控制流语句有多种翻译方法

break ->无条件跳转,可以维护一个栈告诉break语句要去哪里

地址回填技术

  • 回填 (Backpatching) 技术: 子节点挖坑、祖先节点填坑
    • 子节点暂时不指定跳转指令的目标地址
    • 待祖先节点能够确定目标地址时回头填充
    • 父节点通过综合属性收集子节点中具有相同目标的跳转指令
  • 标题: 05_中间代码生成
  • 作者: Charlie
  • 创建于 : 2023-06-01 00:06:00
  • 更新于 : 2024-07-05 12:55:04
  • 链接: https://chillcharlie357.github.io/posts/623d0f24/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
05_中间代码生成