Add ARC auto-sync architecture #797
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Auto-Sync | |
on: | |
push: | |
paths: | |
- "suite/auto-sync/**" | |
- ".github/workflows/auto-sync.yml" | |
pull_request: | |
# Stop previous runs on the same branch on new push | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
check: | |
runs-on: ubuntu-24.04 | |
defaults: | |
run: | |
working-directory: suite/auto-sync/ | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install auto-sync package | |
run: | | |
pip install . | |
- name: Check formatting | |
run: | | |
python3.11 -m black --check src/autosync | |
- name: Install llvm-mc | |
run: | | |
sudo apt install llvm-18 | |
llvm-mc-18 --version | |
FileCheck-18 --version | |
sudo ln -s $(whereis -b llvm-mc-18 | grep -Eo "/.*") /usr/local/bin/llvm-mc | |
sudo ln -s $(whereis -b FileCheck-18 | grep -Eo "/.*") /usr/local/bin/FileCheck | |
llvm-mc --version | |
FileCheck --version | |
- name: Clone llvm-capstone | |
run: | | |
git clone https://github.com/capstone-engine/llvm-capstone.git vendor/llvm_root | |
- name: Build llvm-tblgen | |
run: | | |
cd vendor/llvm_root | |
mkdir build | |
cd build | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=ARC ../llvm | |
cmake --build . --target llvm-tblgen --config Debug | |
cd ../../../ | |
- name: Test Header patcher | |
run: | | |
python -m unittest src/autosync/Tests/test_header_patcher.py | |
python -m unittest src/autosync/Tests/test_mcupdater.py | |
- name: Remove llvm-mc | |
run: | | |
sudo apt remove llvm-18 | |
sudo rm /usr/local/bin/llvm-mc | |
sudo rm /usr/local/bin/FileCheck | |
- name: Test generation of inc files | |
run: | | |
./src/autosync/ASUpdater.py -d -a AArch64 -s IncGen | |
./src/autosync/ASUpdater.py -d -a Alpha -s IncGen | |
./src/autosync/ASUpdater.py -d -a ARC -s IncGen | |
./src/autosync/ASUpdater.py -d -a ARM -s IncGen | |
./src/autosync/ASUpdater.py -d -a PPC -s IncGen | |
./src/autosync/ASUpdater.py -d -a LoongArch -s IncGen | |
./src/autosync/ASUpdater.py -d -a Mips -s IncGen | |
./src/autosync/ASUpdater.py -d -a SystemZ -s IncGen | |
./src/autosync/ASUpdater.py -d -a Xtensa -s IncGen | |
./src/autosync/ASUpdater.py -d -a TriCore -s IncGen | |
- name: CppTranslator - Patch tests | |
run: | | |
python -m unittest src/autosync/cpptranslator/Tests/test_patches.py | |
- name: CppTranslator - Differ tests | |
run: | | |
python -m unittest src/autosync/cpptranslator/Tests/test_differ.py | |
- name: CppTranslator - Test translation | |
run: | | |
./src/autosync/ASUpdater.py --ci -d -a AArch64 -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a ARC -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a ARM -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a PPC -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a LoongArch -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a Mips -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a SystemZ -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a Xtensa -s Translate | |
./src/autosync/ASUpdater.py --ci -d -a TriCore -s Translate |