🌐 在线课程: 在浏览器中学习 — 带进度追踪、搜索、深色主题的交互式课程
🔰 新手? 先看总文档:00-环境搭建指南 → 01-编译器概念入门 → 02-快速上手教程
📊 指标不懂? 03-指标解读指南
🐛 报错了? 04-故障排除FAQ
| 标记 | 含义 |
|---|---|
| ✅ | 已完成(统一课题模板) |
| ⬜ | 规划中(待开发) |
从零开始实现编译器的基础工具。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 05 | RISC-V 汇编代码美化器 | 项目实战 | ✅ |
| 07 | 编译器日志增强器 | 项目实战 | ✅ |
| 09 | DSL 错误提示美化器 | 项目实战 | ✅ |
| 11 | 控制流图(CFG)生成器 | 项目实战 | ✅ |
| 13 | 窥孔优化器 | 项目实战 | ✅ |
| 18 | 指令调度(基本块内列表调度) | 项目实战 | ✅ |
| 20 | 项目代码规范与格式化 | 项目实战 | ✅ |
学习使用 ScratchV 的性能分析和可视化工具。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 06 | 编译器性能测试套件 | 项目实战 | ✅ |
| 12 | RISC-V 后端指令计数统计器 | 项目实战 | ✅ |
| 23 | Cache 行为分析(组相联 + LRU) | 参考分析 | ✅ |
| 24 | Spike 仿真集成 | 参考分析 | ✅ |
| 25 | LLVM vs ScratchV 对比工具 | 参考分析 | ✅ |
| 26 | TinyFive 对比工具 | 参考分析 | ✅ |
| 27 | RV32 全量 Benchmark | 参考分析 | ✅ |
| 30 | CI 基准编排 + Dashboard | 参考分析 | ✅ |
编译器前中后端的关键模块。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 01 | DSL 前端增强器(if/while) | 项目实战 | ✅ |
| 02 | ONNX 模型解析器 | 项目实战 | ✅ |
| 03 | 中间表示系统 (IR) | 项目实战 | ✅ |
| 04 | IR 优化器框架(5 passes) | 项目实战 | ✅ |
| 08 | 后端指令选择 | 参考分析 | ✅ |
| 14 | 常量加载合并优化 | 项目实战 | ✅ |
| 16 | LLVM 代码生成后端 | 项目实战 | ✅ |
| 17 | 寄存器分配(线性扫描) | 项目实战 | ✅ |
| 19 | Standalone RISC-V 编译器 | 参考分析 | ✅ |
深入编译器验证、对比和多目标编译。
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 21 | IR 验证器(7条规则) | 项目实战 | ✅ |
| 22 | Standalone LLVM 编译器 | 项目实战 | ✅ |
| 28 | 扩展指令选择 (F/D/abs/sqrt) | 项目实战 | ✅ |
| 编号 | 课题 | 类型 | 状态 |
|---|---|---|---|
| 10 | 循环展开优化 | 项目实战 | ⬜ |
| 15 | 函数内联 | 项目实战 | ⬜ |
| 29 | SIMD 向量化 (RISC-V P/V-extension) | 项目实战 | ⬜ |
| 类型 | 特征 | 学习周期 |
|---|---|---|
| 项目实战 | 主要任务是"实现某功能/模块" | 12 周计划 |
| 参考分析 | 主要任务是"学会使用/分析某工具" | 4 周自学路线 |
📖 总文档入口: 00-环境搭建 | 01-概念入门 | 02-快速上手 | 03-指标解读 | 04-FAQ
🏗️ 架构总览: ARCHITECTURE.md