Skip to content

CompilerX-SysY/CompilerX-AutoTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CompilerX Auto Test

运行环境

  • Python $\geqslant$ 3.10
  • *nix 系统

依赖安装

  • pip 第三方库:
pip install -r requirements.txt
  • 交叉编译工具链与 Qemu (Ubuntu)
  1. 更新存储库
sudo apt update
  1. 安装交叉编译器
sudo apt install gcc-riscv64-linux-gnu
  1. 安装 Qemu
sudo apt install qemu-user
  • 安装高版本 LLVM (Ubuntu)
  1. 获取安装脚本
wget https://apt.llvm.org/llvm.sh
sudo chmod u+x llvm.sh
  1. 安装 18 版本
sudo ./llvm.sh 18
  1. 检查安装情况
llvm-link-18 --version
lli-18 --version
clang-18 --version

配置文件

根目录下放置 config.yaml,注意使用 UTF-8 编码(如果涉及中文的话)。

一个参考配置如下,请注意修改里面的路径:

  • paths.storage / paths.names.cache 文件夹每次运行会清空
  • paths.storage 中会存放每次运行结果的记录
  • paths.base / paths.names.functional 存放功能测试用例
  • paths.base / paths.names.performance 存放性能测试用例
envs:
  java: java
  clang: clang-18
  llvm-link: llvm-link-18
  llvm-lli: lli-18
  riscv-gcc: riscv64-linux-gnu-gcc
  riscv-qemu: qemu-riscv64
params:
  time-limit:
    compile: 30
    run:
      functional: 30
      performance: 60
paths:
  jar: /home/swkfk/compiler/compiler2024-x/out/artifacts/compiler2024_x_jar/compiler2024-x.jar
  base: /home/swkfk/compiler/testcase
  storage: /home/swkfk/compiler/testcase/storage
  names:
    functional: 2023_sy_functional_140
    performance: 2023_sy_performance_71
    cache: .cache
    history: .history
  sy-libs:
    ll: /home/swkfk/compiler/testcase/sylib.ll
    c: /home/swkfk/compiler/testcase/sylib.c
    h: /home/swkfk/compiler/testcase/sylib.h

运行参数

运行如下命令查看程序帮助:

python main.py -h

常规运行参数

  • -j N--jobs N 并行数,默认单线程。

关于参数格式,可以使用 -j4 或者 -j 4 或者 --jobs 4 或者 --jobs=4 等。

  • --filter prefix 只有名字以 prefix 开头的样例会被测试

  • -- [ARGS ...] 位于 -- 后的参数会被直接传递给编译器

  • -n N--nums N 在进行 benchmark 时重复执行 N 次取平均值

测试范围

下述三个参数互不兼容:

  • -f--func 运行功能测试(默认)
  • -p--perf 运行性能测试
  • -a--all 运行全部测试

测试目标

下述两个参数互不兼容:

  • s--asm 测试生成的 RISCV 汇编代码(默认)
  • r--ir 测试生成的 LLVM IR

测试模式

下述四个参数互不兼容:

  • -O0--no-opt 不开启编译器优化(默认)
  • -O1--opt 开启编译器优化
  • -t--timeit 在是否开启编译器优化之间进行速度比较
  • -b--benchmark 在开启编译器优化与 LLVM clang 开启 O2 之间进行速度比较

历史记录检视

运行 python view.py 即可。

直接回车可以浏览更多的历史记录,输入编号可以查看具体的结果。

使用键盘中断(Ctrl-C) 或者向程序传递 EOF 可以正常退出程序。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages