Commit e2a6783e authored by guangxing's avatar guangxing
Browse files

doc for backend

No related merge requests found
Showing with 5 additions and 5 deletions
+5 -5
......@@ -64,9 +64,9 @@ AST 的主要类:`Node`(所有 AST 节点的基类)、`Stmt`(语句,
## 2.4 后端
### 指令选择
### 2.4.1 指令选择
#TODO
在后端架构中,我们使用了和IR阶段类似的数据结构储存所有的riscv指令,以便完成指令选择和后续的算法,指令选择完全参考riscvcard,根据传入的IR语句类型进行一对多的指令替换,可以处理所有的立即数和浮点数运算情况,并可以正确处理跳转逻辑,所有跳转均使用J指令完成。
### 寄存器分配
......@@ -74,15 +74,15 @@ AST 的主要类:`Node`(所有 AST 节点的基类)、`Stmt`(语句,
### 栈分配
#TODO 栈空间利用
栈分配空间利用设计的stackframe结构体储存,在栈帧的存取操作中,通过读取和修改stackframe中的数据完成。
### 函数调用
#TODO 函数传参、程序现场保存和恢复
函数的调用和保护现场采用最保守的策略,调用前后完整保护现场,并在调用结束后立刻恢复
### 窥孔优化
#TODO
最后完成窥孔优化,简化函数传参和数组取地址的运算逻辑,并去除冗余的部分指令。
# 4. 环境配置
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment