- 14 Aug, 2022 3 commits
- 13 Aug, 2022 16 commits
-
-
萝杨空队-梁韬 authored
1. 更改了 Phi 指令 incompleted 的判定方法, 现在其等价于有没有设置 incoming value 了 2. 完善了当 replaceInIList 的参数是自己时的处理 3. 增加了把全局变量转换为 Value 的 pass
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-
youngk1019 authored
Dev/stack fix See merge request Origami404/ssyc!23
-
youngk1019 authored
-
youngk1019 authored
-
萝杨空队-梁韬 authored
IR 循环优化 See merge request Origami404/ssyc!6
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
1. 为基本块的跳转指令的插入设置了特别的接口 2. 增加了一些小工具 3. 优化了 import 4. 修复了 insertBeforeCO/insertAfterCO 在传入参数就是当前前继/后继的情况下的不正确行为
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-
youngk1019 authored
-
- 12 Aug, 2022 2 commits
-
-
youngk1019 authored
-
youngk1019 authored
-
- 11 Aug, 2022 6 commits
- 10 Aug, 2022 2 commits
- 09 Aug, 2022 8 commits
-
-
Sora Shu authored
-
Sora Shu authored
部分变量内联, 部分流重写遍历
-
萝杨空队-梁韬 authored
1. 修复了当循环只有一个块时 (同时充当 header 与 latch) 的不正确处理. 现在这种情况会手动将该块拆分, 形成一个 rotated loop 2. 修复了同一个函数多次内联到另一个函数时, pre_header 与 latch 可能重名的问题 3. 修复了复用 pre-header/latch 块时, 有可能重复往该块添加 Br 指令的问题 4. 修复了 pre-header/latch 块没有加入到上层循环 body 中的问题 5. 修复了对形如 while (1) 之类的循环的错误处理. 此类循环的特点是: header 与 latch 均无 BrCond, 有可能有多个退出节点 (常见 if (xxx) return 0 的形式). 同时据此更新了 verify 中验证 cond 的方法, 加入了对 MultiExit 的支持 6. 严格化了复用 pre-header/latch 的条件: 必须是 header 中对应的前继只有一个, 且其后继只有 header 的时候才能复用 7. 修复了当循环嵌套时, 内层循环循环体有可能不在外层循环的 latch 前继闭包中的问题
-
萝杨空队-梁韬 authored
如果 A -> B -> C 且 A -> C, 那么说明这个控制流会起到一个条件选择的作用 这时候就不能直接合并它, 因为有可能在 C 开头会有 phi 借助控制流来求一个运行时根据条件才能确定的值
-
萝杨空队-梁韬 authored
1. 修复了函数内联之后基本块的前继顺序有可能与原函数中的顺序不同, 从而导致 phi 指令 incoming 配对错误的问题 2. 修复了 MemCache.copyFrom 只使用浅复制, 导致一些 MemPosHandler 被意外复用的情况
-
萝杨空队-梁韬 authored
1. 明确了 body 的定义 (latch 也属于 body) 并更正了对应 verify 的实现 2. 将错误移动到 CollectionTools 中的方法移回来 3. 修复了忘记将 justLoop.body 中的块加入到 canonicalLoop 中的错误 4. 修复了 canonicalLoop 构造完成后忘记调用 verify 进行检查的错误 5. 修复了新构造的 pre-header/latch 块没有加入 br 指令的错误 6. 修复了没有将获取到的 justLoop 加入到返回值中的错误 7. 修复了获取循环 body 时有可能将 header 的外部前继加入到循环体中的错误
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
1. 将原先的 MergeDirectBranch 名字修改为 FuseBasicBlock 2. 修复了删除块的时候有可能有指令的参数没被消除导致其它 Value 存在被无主变量 use 的情况 3. 更正了 BasicBlock API 中的一个 typo 4. 修复了 Phi 指令的 freeFromUseDef 有可能因为自身引用而失败的情况 5. 修正了 refold 不会对两个目标块相同的 BrCond 进行折叠的错误 6. 修复了数据流分析中对起始块的 out 的错误赋值 7. 修复了数据流分析过程中 meet 操作后没有对目标块的 in 进行覆盖的错误 8. 修复了支配信息构造过程中没有把自身加入自身的支配集的错误
-
- 08 Aug, 2022 3 commits
-
-
youngk1019 authored
-
萝杨空队-梁韬 authored
-
萝杨空队-梁韬 authored
-