摘要:
静态单赋值形式 每个遍历仅仅被赋值一次。 变量仅在单bb块内被多次赋值。重命名 a = 1; b = a; a = 2; d = a; > a1 = 1; b = a1; a2 = 2; d = a2; 变量块跨bb块被多次赋值,插入phi节点,并重命名 B1 if (cond) B2 a = b; 阅读全文
摘要:
从Function的entry-bb开始,遍历所有的后继bb块。如果无法访问的bb块,删除。 阅读全文
摘要:
为什么需要自研编译后端。 从 dsl语言到 可执行文件,如果采用genc code和 llvm-IR 需要通过 gcc 和 llvm , 这两个编译太heavy了,很多优化pass并不需要。 从IR到二进制文件的经历的pass 流 1,去除不必要block。 rm dead code , rm de 阅读全文