compiler
文章平均质量分 81
xiaoquan9653
这个作者很懒,什么都没留下…
展开
-
RA, 寄存器分配
寄存器分配1. 如何计算D-U链(1) 首先遍历整个routine,保存所有def值; 问题: 你如何去保存这些def值呢?要保证能快速的得到每个def值,因为每一 个 def 值不仅仅只包含dst寄存器号,还包括这条指令,以及其它信息。解答之一: 最快速的查找算法,就是hash算法。在我们这里通过构建一个含有256个元素的hash表,hash[regNo & (256-原创 2016-05-26 17:21:20 · 3717 阅读 · 1 评论 -
静态单赋值理解
静态单赋值SSA即静态单赋值,Static Single-Assignment,这是一种中间表示形式。 之所以称之为单赋值,是因为每个名字在SSA中仅被赋值一次。构造静态单赋值形式的过程会在CFG中的每个汇合点之后插入phi函数,汇合点即为CFG中多条代码路径汇合之处。在汇合点处,不同的静态单赋值形式名必须调和为一个名字。整个过程大致为两步:(1) 插入PHI函数在具有原创 2016-05-26 15:20:54 · 7671 阅读 · 0 评论 -
CMakeLists用法总结
分一下几个方面来描述:1. 每一个LIB要编译成静态库或动态库如何描述,每一个TOOL要编译成可执行文件如何描述?2. LIB和TOOL可能会依赖于其他LIB,该如何描述?3. 每个LIB和TOOL都会include很多头文件,相同的头文件如何处理,私有的头文件如何处理?4. CMake中的一些用法5. LLVM中用到的技巧先举一个简单的例子: // ...原创 2018-04-18 23:32:50 · 15480 阅读 · 0 评论