Skip to content

Commit 53644a5

Browse files
authored
Add LLVM build (#30)
1 parent 630c84f commit 53644a5

File tree

4 files changed

+69
-3
lines changed

4 files changed

+69
-3
lines changed

.github/workflows/build-llvm.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: LLVM Build
2+
3+
on:
4+
workflow_dispatch:
5+
6+
permissions: read-all
7+
8+
jobs:
9+
build:
10+
name: Build
11+
runs-on: [self-hosted]
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Set LLVM hash
17+
run: |
18+
echo LLVM_HASH=$(cat cmake/llvm-version.txt) >>$GITHUB_ENV
19+
20+
- uses: actions/checkout@v4
21+
with:
22+
repository: llvm/llvm-project
23+
ref: ${{ env.LLVM_HASH }}
24+
25+
- name: Build
26+
run: |
27+
mkdir llvm-install
28+
cmake -G Ninja llvm -B build -DCMAKE_INSTALL_PREFIX=llvm-install \
29+
-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=true -DLLVM_ENABLE_PROJECTS="mlir" -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_INSTALL_UTILS=true -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
30+
cmake --build build --target install
31+
cd llvm-install
32+
tar -zcf ../llvm.tgz .
33+
34+
- uses: actions/upload-artifact@v4
35+
with:
36+
name: llvm-${{ env.LLVM_HASH }}
37+
path: llvm.tgz
38+
39+

.github/workflows/build.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ jobs:
1515
name: Build
1616
runs-on: [self-hosted]
1717

18+
env:
19+
GH_TOKEN: ${{ github.token }}
20+
1821
steps:
1922
- uses: actions/checkout@v4
2023

2124
- name: Build
2225
run: |
23-
cmake -S . -G Ninja -B build
24-
cmake --build build --parallel $(nproc)
26+
scripts/compile.sh

cmake/llvm-version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
179e174945b6c0da462c534504720c9544aebf84
1+
179e174945b6c0da462c534504720c9544aebf84

scripts/compile.sh

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash -e
2+
3+
repo=intel/graph-compiler
4+
5+
cd $(dirname "$0")/..
6+
llvm_dir=$(cd ..; pwd -P)/install/llvm
7+
llvm_hash=$(cat cmake/llvm-version.txt)
8+
9+
get_llvm() (
10+
local run_id
11+
12+
run_id=$(gh run list -w "LLVM Build" --repo $repo --json databaseId --jq '.[0].databaseId')
13+
14+
gh run download "$run_id" \
15+
--repo "$repo" \
16+
--pattern "llvm-$llvm_hash" \
17+
--dir "$llvm_dir"
18+
cd "$llvm_dir"
19+
tar -zxf "llvm-$llvm_hash"/llvm.tgz
20+
)
21+
22+
test -f "$llvm_dir/llvm-$llvm_hash"/llvm.tgz || get_llvm
23+
24+
cmake -S . -G Ninja -B build
25+
cmake --build build --parallel $(nproc)

0 commit comments

Comments
 (0)