(1) 控制流分析器 -- DOM 树的构建
在 CFG 中, 从起点出发到一个结点 u 的所有路径中, 总会碰到那么几个结点 v 绕不过去, 这些结点就是 u 的支配结点. 几乎所有的优化 Pass – 例如, Mem2Reg, 都要用到支配树; 因此支配树是最先开始做的. 接口目前仅有 adaptive-traced-cfg 分支实现了支配关系.下面是支配树对外公布的 API: 123456789101112131415161718192021222324252627/* src/optimize/control-flow/dominance.vala */public abstract class Musys.IROpti.CtrlFlow.DomTree { /** 先序 DFS 得到的遍历序列, 带父结点. */ public DfsSequence dfs_seq; /** DFS 序号为 i 的结点, 直接支配它的结点为 idom[i] */ public int[] idom; /** DFS 序号为 i 的结点直接支配的结点为...
Musys 优化器编写日志 -- 总览
在我看来, 学一样东西最笨最有效的办法就是把它从头到尾抄一遍 —— 我要学 LLVM, 那我就“抄”出来一个自己的 Musys. 这段时间给我的 Musys 编译器改了一大堆内容, 加了一大堆工具, 现在终于要加一些优化手段了. 总目录 (1) 控制流分析器 – DOM 树的构建 (2) 未完待续… 附录—— 等等, 叨了这么多, Musys 是什么东西? 怎么做出来的?… 前置问题太多, 我要开始鸽了.
催更计划
新个人站建成以后, 一些老文章要迁移, 还有一些新东西要写. 但我已经熬了通宵, 撑不住了. 写个催更列表罢. Vala 相关 浅浅试水 GTK 系列 假想语言系列 Meson 手账 RISC-V 和操作系统相关 rCore 回顾系列 ArceOS MYGL-BinUtil 开发日志 Musys-IR 编译器系列 Musys 开发历程系列 Musys 与优化器 Musys 上手手册 假想语言和 Musys 搞机! 手机也搞生产力 – Termux 折腾 Musys 完了等下要做什么我给忘了你看, 熬个大夜多伤身体 旧站搬运 动态 “探索”栏目的项目列表
Hello World Again
亏麻了家人们, 换个硬盘把原来那台 KVM 虚拟机丢了. 原来想着只要把换出来的系统盘拿来当移动硬盘使, 然后我一公一私两个博客都能保全;结果现在都丢完了, 原来那个 Fedora 系统连 GRUB 都进不去. 我的十几篇笔记和动态啊, 它咋办哪… 重新配置一遍吧, 反正新虚拟机运行了足足一个月, 生产力和原来那几台比真的遥遥领先, 重新搭个人站也不是问题. 所以现在是恢复专场, 我要把我原来那套 Hexo + Butterfly 的配置救回来. 配置简报该 Hexo 服务器运行在 Ubuntu QEMU/KVM 本地服务器内. 虚拟机平台: QEMU/KVM QEMU emulator version 9.1.2 (qemu-9.1.2-2.fc41) Virt-manager 4.1.0 主机 OS: Fedora Linux 41 (GNOME 47) 操作系统: Ubuntu 24.04 服务器版 NodeJS: v22.11.0 LTS, 从...