摘要: 静态单赋值形式 每个遍历仅仅被赋值一次。 变量仅在单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; 阅读全文
posted @ 2024-07-10 18:01 zzas12345 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 从Function的entry-bb开始,遍历所有的后继bb块。如果无法访问的bb块,删除。 阅读全文
posted @ 2024-07-10 17:49 zzas12345 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 为什么需要自研编译后端。 从 dsl语言到 可执行文件,如果采用genc code和 llvm-IR 需要通过 gcc 和 llvm , 这两个编译太heavy了,很多优化pass并不需要。 从IR到二进制文件的经历的pass 流 1,去除不必要block。 rm dead code , rm de 阅读全文
posted @ 2024-07-10 17:46 zzas12345 阅读(3) 评论(0) 推荐(0) 编辑