-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (103 loc) · 6.27 KB
/
Copy pathci.yml
File metadata and controls
130 lines (103 loc) · 6.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: CI
on:
push:
pull_request:
env:
MINIC_QEMU_VERSION: v9.2.0
QEMU_RISCV64_BIN: /usr/local/bin/qemu-riscv64-static
QEMU_RISCV64_CPU: rv64,v=true
jobs:
build-and-smoke-test:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
clang \
cmake \
git \
gcc-riscv64-linux-gnu \
ninja-build \
pkg-config \
python3-venv \
libglib2.0-dev \
libpixman-1-dev \
zlib1g-dev \
graphviz \
graphviz-dev \
openjdk-17-jdk \
unzip \
curl
- name: Install QEMU ${{ env.MINIC_QEMU_VERSION }}
run: |
rm -rf /tmp/qemu-rvv
git clone --depth 1 --branch "${MINIC_QEMU_VERSION}" https://github.com/qemu/qemu.git /tmp/qemu-rvv
cd /tmp/qemu-rvv
./configure --target-list=riscv64-linux-user --static --disable-system --disable-tools --disable-docs
make -j"$(nproc)"
sudo install -m 0755 build/qemu-riscv64 "${QEMU_RISCV64_BIN}"
"${QEMU_RISCV64_BIN}" --version
"${QEMU_RISCV64_BIN}" -cpu "${QEMU_RISCV64_CPU}" -version
- name: Install ANTLR4 C++ runtime 4.12.0
run: |
curl -L -o /tmp/antlr4-cpp-runtime-4.12.0-source.zip \
https://www.antlr.org/download/antlr4-cpp-runtime-4.12.0-source.zip
rm -rf /tmp/antlr4-cpp-runtime-4.12.0-source
unzip -q /tmp/antlr4-cpp-runtime-4.12.0-source.zip -d /tmp/antlr4-cpp-runtime-4.12.0-source
cmake -B /tmp/antlr4-cpp-runtime-4.12.0-source/build \
-S /tmp/antlr4-cpp-runtime-4.12.0-source \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DANTLR_BUILD_CPP_TESTS=OFF
cmake --build /tmp/antlr4-cpp-runtime-4.12.0-source/build --parallel
sudo cmake --install /tmp/antlr4-cpp-runtime-4.12.0-source/build
- name: Configure
run: |
cmake -B build -S . -G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_COMPILER=clang++ \
-DANTLR4_INCLUDE_DIR=/usr/local/include/antlr4-runtime \
-DANTLR4_LIBRARY=/usr/local/lib/libantlr4-runtime.so
- name: Build
run: cmake --build build --parallel
- name: Run phi regression tests
run: QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-phi-regression.sh
- name: Run phi regression tests (O0)
run: MINIC_PHI_LL_OPT_LEVEL=0 MINIC_PHI_ASM_OPT_LEVEL=0 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-phi-regression.sh
- name: Run float regression tests
run: QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-float-regression.sh
- name: Run float regression tests (O0)
run: MINIC_FLOAT_LL_OPT_LEVEL=0 MINIC_FLOAT_ASM_OPT_LEVEL=0 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-float-regression.sh
- name: Run matmul interchange validation tests
run: MINIC_RISCV64_TIMEOUT=120 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh matmul
- name: Run matmul interchange validation tests (O0)
run: MINIC_RISCV64_TIMEOUT=120 MINIC_RISCV64_OPT_LEVEL=0 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh matmul
- name: Run for-loop RISCV64 asm regression tests
run: MINIC_TEST_MODE=asm MINIC_TEST_TIMEOUT=60 MINIC_TEST_EXTRA_ARGS="-e" QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-tests.sh for_loop
- name: Run for-loop RISCV64 asm regression tests (O0)
run: MINIC_TEST_MODE=asm MINIC_TEST_TIMEOUT=60 MINIC_ASM_OPT_LEVEL=0 MINIC_TEST_EXTRA_ARGS="-e" QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-tests.sh for_loop
- name: Run static RISCV64 asm regression tests
run: MINIC_TEST_MODE=asm MINIC_TEST_TIMEOUT=60 MINIC_TEST_EXTRA_ARGS="-e" QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-tests.sh static_test
- name: Run static RISCV64 asm regression tests (O0)
run: MINIC_TEST_MODE=asm MINIC_TEST_TIMEOUT=60 MINIC_ASM_OPT_LEVEL=0 MINIC_TEST_EXTRA_ARGS="-e" QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-tests.sh static_test
- name: Run 2023 LLVM IR full test suite
run: MINIC_TEST_MODE=llvmir MINIC_TEST_TIMEOUT=60 bash ./tools/run-local-tests.sh 2023
- name: Run 2025 LLVM IR full test suite
run: MINIC_TEST_MODE=llvmir MINIC_TEST_TIMEOUT=60 bash ./tools/run-local-tests.sh 2025
- name: Run 2026 LLVM IR full test suite
run: MINIC_TEST_MODE=llvmir MINIC_TEST_TIMEOUT=60 bash ./tools/run-local-tests.sh 2026
- name: Run 2023 RISCV64 asm full test suite
run: MINIC_RISCV64_TIMEOUT=60 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh 2023
- name: Run 2025 RISCV64 asm full test suite
run: MINIC_RISCV64_TIMEOUT=60 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh 2025
- name: Run 2026 RISCV64 asm full test suite
run: MINIC_RISCV64_TIMEOUT=60 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh 2026
- name: Run 2026 RISCV64 asm full test suite (O1)
run: MINIC_RISCV64_TIMEOUT=60 MINIC_FUNC_OPT_LEVEL=1 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh 2026
- name: Run 2026 RISCV64 asm performance test suite
run: MINIC_RISCV64_TIMEOUT=120 QEMU_RISCV64_BIN="${QEMU_RISCV64_BIN}" QEMU_RISCV64_CPU="${QEMU_RISCV64_CPU}" bash ./tools/run-local-riscv64-tests.sh 2026_performance