Files
mysysy/README.md
rain2133 88604c1f94 [IR]消除Falltrhough现象
[IR]优化生成Ret指令逻辑
[README]添加TODO表
2025-07-20 18:23:48 +08:00

49 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SysY 编译器 by 32bit Brain Storm
SysY 编译器是一个基于 ANTLR4 的编译器,支持 SysY 语言的解析和编译。该编译器使用 C++ 实现,并提供了一些简单的命令行操作来处理 SysY 源代码。
### 项目配置。
> 请确保你已经安装了CMake。
```bash
mysysy/ $ bash setup.sh
```
### 常用操作
- 查看帮助信息:
```bash
mysysy/ $ build/bin/sysyc -h
```
- 运行并打印IR
```bash
mysysy/ $ build/bin/sysyc -s ir testdata/functional/21_if_test2.sy
```
- 运行并打印汇编码:
```bash
build/bin/sysyc -s asm testdata/functional/21_if_test2.sy
```
或者输出到文件中:
```bash
build/bin/sysyc -S testdata/functional/21_if_test2.sy -o 21_if_test2.s
```
- 运行并打印IR包含调试信息
```bash
build/bin/sysyc -s ird testdata/functional/21_if_test2.sy
```
- 运行并打印汇编码(包含调试信息):
```bash
build/bin/sysyc -s asmd testdata/functional/21_if_test2.sy
```
### 配套脚本
TODO: 需要完善)
### TODO_list:
除开注释中的TODO后续时间充足可以考虑的TODO:
- store load指令由于gep指令的引入, 维度信息的记录是非必须的, 考虑删除
- use def关系经过mem2reg和phi函数明确转换为ssa形式, 以及函数参数通过value数组明确定义, 使得基本块的args参数信息记录非必须, 考虑删除