/minic-kkogoro

A SysY to RISC-V compiler using Rust

Primary LanguageRust

Learn Rust in a miniC compiler project

一边学习Rust一边实现的SysY to RISC-V编译器。

由于我是Rust初学者,代码中有很多不地道的写法,我还在修正中。

前端从SysY生成Koopa IR,后端从Koopa IR生成RISC-V。

前端部分暂时使用文本形式IR,或许暑假会改成内存形式。

目前已完成

  • 前端

  • 后端

其他问题

  • 还是可以构造出冲突的变量名,可以在ds_for_ir中单独实现一个查询函数名称的接口(通过符号表查询)。

  • 函数名的查询接口已经实现了,但是main和库函数的名字不应该被混淆,修正方式是在全局符号表tables[0]中的函数名不做混淆,等出问题再改。

  • 将gen_ir拆分成多个模块,等我学完rust模块管理再改。

  • 把寄存器当作内存的cache

  • 下面代码会出现IR缺换行的问题

int main()
{
    int a[2][3];
    return 0;
}