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_args和gcc_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重新编译libsysy.a,到runtime目录下,修改Makefile
修改CC变量,将-march=rv64gc -mabi=lp64f改为你的架构
重新make
推荐32位的用-march=rv32gc -mabi=ilp32f
64位的用:-march=rv64gc -mabi=lp64f
测试脚本还在不断完善中...