🌐 在线课程: 在浏览器中学习 — 带进度追踪、搜索、深色主题的交互式课程
🛠️ 本地生成:
make docs→docs/topics/html/index.html🔰 新手? 先看总文档:00-环境搭建指南 → 01-编译器概念入门 → 02-快速上手教程
📊 指标不懂? 03-指标解读指南
🐛 报错了? 04-故障排除FAQ
- PassManager 设计文档:注册、管线、开关与功能性 Pass。
| 标记 | 含义 |
|---|---|
| ✅ | 已完成 |
| ⬜ | 规划中(待开发) |
每个课题一个文件夹,内含指引(本目录的 NN-*.md)与配套的设计文档、开发文档。
从零开始实现编译器的基础工具。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 05 | RISC-V 汇编代码美化器 | 项目实战 | ✅ |
| 07 | 编译器日志增强器 | 项目实战 | ✅ |
| 09 | DSL 错误提示美化器 | 项目实战 | ✅ |
| 11 | 控制流图(CFG)生成器 | 项目实战 | ✅ |
| 13 | 窥孔优化器 | 项目实战 | ✅ |
| 18 | 指令调度(基本块内列表调度) | 项目实战 | ✅ |
| 20 | 项目代码规范与格式化 | 项目实战 | ✅ |
学习使用 ScratchV 的性能分析与指令计数工具。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 06 | 编译器性能测试套件 | 项目实战 | ✅ |
| 12 | RISC-V 后端指令计数统计器 | 项目实战 | ✅ |
编译器前中后端的关键模块。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 01 | DSL 前端增强器(if/while) | 项目实战 | ✅ |
| 14 | 常量加载合并优化 | 项目实战 | ✅ |
| 17 | 寄存器分配(线性扫描) | 项目实战 | ✅ |
深入编译器验证与多目标编译。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 21 | IR 验证器(7条规则) | 项目实战 | ✅ |
| 28 | 扩展指令选择 (F/D/abs/sqrt) | 项目实战 | ✅ |
| 类型 | 特征 | 学习周期 |
|---|---|---|
| 项目实战 | 主要任务是"实现某功能/模块" | 12 周计划 |
| 参考分析 | 主要任务是"学会使用/分析某工具" | 4 周自学路线 |
📖 总文档入口: 00-环境搭建 | 01-概念入门 | 02-快速上手 | 03-指标解读 | 04-FAQ
🏗️ 架构总览: ARCHITECTURE.md