Skip to content

decaf-lang/minidecaf-additional-test

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minidecaf-tests

MiniDecaf 大实验测例及测试脚本。

本仓库fork自minidecaf-test

仓库中testcases文件夹下的step 1-12为基础实验测试样例,additional为附加测试,performance为性能测试仓库。

performance测试样例仓库下,你会看到一个xxx.c文件和一个xxx.in文件,其中xxx.in为本测试样例的输入。

使用说明

预置条件:qemu-user, riscv64-unknown-elf工具链,python3

python test.py -t <testcase_folder> [-p] [-b]

其中-t选项指定了存放测例的路径。-b-p是可选项,使用-b将启用性能评测记录程序运行时间, 设置-p将开启并行评测(不建议在最终评测性能时启用)。

请看test.py,修改compiler_path,compiler_argsgcc_args变量,改为你的编译器路径和参数选项。

例如

compiler_path = "./build/mycompiler"
compiler_args = "-O2"

此处compiler_args为提供给你的编译器的额外选项。

我们会以下面的命令模板调用你的编译器生成汇编代码

# {compiler_path} {compiler_args} xxx.sy -o xxx.s
./build/mycompiler -O2 xxx.sy -o xxx.s

如果你的编译器不支持这样的命令格式,请在test函数中的注释附近修改。

然后会带上gcc_args使用gcc来汇编上一步生成的代码并链接运行时库。

比如:

gcc_args = "-march=rv64gc -mabi=lp64f"

则会调用

# riscv64-unknown-elf-gcc {gcc_args} xxx.s runtime/libsysy.a -o xxx
riscv64-unknown-elf-gcc -march=rv64gc -mabi=lp64f xxx.s runtime/libsysy.a -o xxx

如果你的编译器后端架构不是riscv64

重新编译libsysy.a,到runtime目录下,修改Makefile

修改CC变量,将-march=rv64gc -mabi=lp64f改为你的架构

重新make

推荐32位的用-march=rv32gc -mabi=ilp32f

64位的用:-march=rv64gc -mabi=lp64f

测试脚本还在不断完善中...

About

The MiniDecaf test cases.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.6%
  • Other 1.4%