Skip to content

Commit 6fb1fec

Browse files
azteca1998edg-l
andauthored
Update LLVM 19. (#763)
* Update LLVM 19. * update ffi.cpp * remove unused ffi functions * Make dependencies non-path-relative. * change ci * use lambda repos2 * update all ci * use oficial deps * upd readme * update dockerfile * update bench script * relax libc version * relax libc version * remove ffi cpp code no longer needed * remove ffi * upd env.sh --------- Co-authored-by: Edgar <[email protected]>
1 parent 0e96dff commit 6fb1fec

18 files changed

+244
-698
lines changed

Diff for: .github/workflows/bench-hyperfine.yml

+26-26
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
runs-on: ubuntu-latest
2020
env:
2121
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
22-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
23-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
24-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
22+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
23+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
24+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
2525
steps:
2626
- uses: actions/checkout@v4
2727
- name: check and free hdd space left
@@ -50,11 +50,11 @@ jobs:
5050
- name: add llvm deb repository
5151
uses: myci-actions/add-deb-repo@11
5252
with:
53-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
53+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
5454
repo-name: llvm-repo
5555
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
5656
- name: Install LLVM
57-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
57+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
5858
- name: Install hyperfine
5959
uses: taiki-e/install-action@v2
6060
with:
@@ -86,12 +86,12 @@ jobs:
8686
issue-number: ${{ github.event.pull_request.number }}
8787
body-path: bench-hyperfine.md
8888
edit-mode: replace
89-
89+
9090
build-binaries:
9191
env:
92-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
93-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
94-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
92+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
93+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
94+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
9595
RUST_LOG: cairo_native=debug,cairo_native_test=debug
9696
strategy:
9797
matrix:
@@ -101,18 +101,18 @@ jobs:
101101
steps:
102102
- name: Cache binary
103103
uses: actions/cache@v3
104-
id: cache-binary
104+
id: cache-binary
105105
with:
106106
path: bin/cairo-native-run-${{ matrix.branch }}
107107
key: binary-${{ github.event.pull_request[matrix.branch].sha }}
108-
108+
109109
- name: Cache runtime-library
110110
uses: actions/cache@v3
111-
id: cache-library
111+
id: cache-library
112112
with:
113113
path: lib/libcairo-native-runtime-${{ matrix.branch }}.a
114-
key: library-${{ github.event.pull_request[matrix.branch].sha }}
115-
114+
key: library-${{ github.event.pull_request[matrix.branch].sha }}
115+
116116
- name: check and free hdd space left
117117
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' }}
118118
run: |
@@ -137,37 +137,37 @@ jobs:
137137
- name: Install Rust
138138
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' || steps.cache-library.outputs.cache-hit != 'true' }}
139139
uses: dtolnay/[email protected]
140-
140+
141141
- name: add llvm deb repository
142142
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' || steps.cache-library.outputs.cache-hit != 'true' }}
143143
uses: myci-actions/add-deb-repo@11
144144
with:
145-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
145+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
146146
repo-name: llvm-repo
147147
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
148-
148+
149149
- name: Install LLVM
150150
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' || steps.cache-library.outputs.cache-hit != 'true' }}
151-
run: sudo apt-get update && sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
151+
run: sudo apt-get update && sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
152152

153153
- name: Checkout base commit
154154
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' || steps.cache-library.outputs.cache-hit != 'true' }}
155155
uses: actions/checkout@v4
156156
with:
157157
ref: ${{ github.event.pull_request[matrix.branch].sha }}
158-
158+
159159
- name: Fetch Rust cache
160160
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' || steps.cache-library.outputs.cache-hit != 'true' }}
161161
uses: Swatinem/rust-cache@v2
162-
162+
163163
- name: Build binary
164164
if: ${{ steps.cache-binary.outputs.cache-hit != 'true' || steps.cache-library.outputs.cache-hit != 'true' }}
165165
run: |
166166
make build
167167
mkdir lib bin
168168
cp target/release/cairo-native-run bin/cairo-native-run-${{ matrix.branch }}
169169
cp target/release/libcairo_native_runtime.a lib/libcairo-native-runtime-${{ matrix.branch }}.a
170-
170+
171171
hyperfine-prs:
172172
name: Bench PR (linux, amd64)
173173
needs: [ build-binaries ]
@@ -219,10 +219,10 @@ jobs:
219219
--export-markdown "${f%.*}.md" \
220220
--export-json "${f%.*}.json" \
221221
--warmup 3 \
222-
-n "head $(basename $f) (JIT)" "./bin/cairo-native-run-head --run-mode=jit -s $f --opt-level 3 --available-gas 18446744073709551615" \
223-
-n "base $(basename $f) (JIT)" "./bin/cairo-native-run-base --run-mode=jit -s $f --opt-level 3 --available-gas 18446744073709551615" \
224-
-n "head $(basename $f) (AOT)" "CAIRO_NATIVE_RUNTIME_LIBRARY=lib/libcairo-native-runtime-head.a ./bin/cairo-native-run-head --run-mode=aot -s $f --opt-level 3 --available-gas 18446744073709551615" \
225-
-n "base $(basename $f) (AOT)" "CAIRO_NATIVE_RUNTIME_LIBRARY=lib/libcairo-native-runtime-base.a ./bin/cairo-native-run-base --run-mode=aot -s $f --opt-level 3 --available-gas 18446744073709551615" \
222+
-n "head $(basename $f) (JIT)" "./bin/cairo-native-run-head --run-mode=jit -s $f --opt-level 3 --available-gas 19446744073709551615" \
223+
-n "base $(basename $f) (JIT)" "./bin/cairo-native-run-base --run-mode=jit -s $f --opt-level 3 --available-gas 19446744073709551615" \
224+
-n "head $(basename $f) (AOT)" "CAIRO_NATIVE_RUNTIME_LIBRARY=lib/libcairo-native-runtime-head.a ./bin/cairo-native-run-head --run-mode=aot -s $f --opt-level 3 --available-gas 19446744073709551615" \
225+
-n "base $(basename $f) (AOT)" "CAIRO_NATIVE_RUNTIME_LIBRARY=lib/libcairo-native-runtime-base.a ./bin/cairo-native-run-base --run-mode=aot -s $f --opt-level 3 --available-gas 19446744073709551615" \
226226
>> /dev/stderr
227227
done
228228
- name: Print tables
@@ -243,7 +243,7 @@ jobs:
243243
issue-number: ${{ github.event.pull_request.number }}
244244
comment-author: "github-actions[bot]"
245245
body-includes: Benchmarking
246-
246+
247247
- name: Create or update bench comment
248248
continue-on-error: true
249249
uses: peter-evans/create-or-update-comment@v4

Diff for: .github/workflows/ci.yml

+23-23
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ jobs:
1616
name: clippy
1717
runs-on: ubuntu-latest
1818
env:
19-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
20-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
21-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
19+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
20+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
21+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
2222
steps:
2323
- uses: actions/checkout@v4
2424
- uses: dtolnay/[email protected]
@@ -28,11 +28,11 @@ jobs:
2828
- name: add llvm deb repository
2929
uses: myci-actions/add-deb-repo@11
3030
with:
31-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
31+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
3232
repo-name: llvm-repo
3333
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
3434
- name: Install LLVM
35-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
35+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
3636
- name: Clippy
3737
run: make check
3838

@@ -83,9 +83,9 @@ jobs:
8383
udeps:
8484
runs-on: ubuntu-latest
8585
env:
86-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
87-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
88-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
86+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
87+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
88+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
8989
RUSTUP_TOOLCHAIN: nightly # udeps needs nightly
9090
steps:
9191
- uses: actions/checkout@v4
@@ -97,11 +97,11 @@ jobs:
9797
- name: add llvm deb repository
9898
uses: myci-actions/add-deb-repo@11
9999
with:
100-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
100+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
101101
repo-name: llvm-repo
102102
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
103103
- name: Install LLVM
104-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
104+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
105105
- name: "Download and run cargo-udeps"
106106
run: |
107107
wget -O - -c https://github.com/est31/cargo-udeps/releases/download/v0.1.50/cargo-udeps-v0.1.50-x86_64-unknown-linux-gnu.tar.gz | tar -xz
@@ -111,9 +111,9 @@ jobs:
111111
name: test (linux, amd64)
112112
runs-on: ubuntu-latest
113113
env:
114-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
115-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
116-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
114+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
115+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
116+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
117117
RUST_LOG: cairo_native=debug,cairo_native_test=debug
118118
steps:
119119
- uses: actions/checkout@v4
@@ -143,12 +143,12 @@ jobs:
143143
- name: add llvm deb repository
144144
uses: myci-actions/add-deb-repo@11
145145
with:
146-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
146+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
147147
repo-name: llvm-repo
148148
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
149149
- run: sudo apt-get update && sudo apt-get upgrade -y
150150
- name: Install LLVM
151-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
151+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
152152
- name: Install deps
153153
run: make deps
154154
- name: Build cairo-native-runtime library.
@@ -164,9 +164,9 @@ jobs:
164164
env:
165165
CARGO_TERM_COLOR: always
166166
LIBRARY_PATH: /opt/homebrew/lib
167-
MLIR_SYS_180_PREFIX: /opt/homebrew/opt/llvm@18
168-
LLVM_SYS_181_PREFIX: /opt/homebrew/opt/llvm@18
169-
TABLEGEN_180_PREFIX: /opt/homebrew/opt/llvm@18
167+
MLIR_SYS_190_PREFIX: /opt/homebrew/opt/llvm@19
168+
LLVM_SYS_191_PREFIX: /opt/homebrew/opt/llvm@19
169+
TABLEGEN_190_PREFIX: /opt/homebrew/opt/llvm@19
170170
RUST_LOG: cairo_native=debug,cairo_native_test=debug
171171
steps:
172172
- uses: actions/checkout@v4
@@ -207,9 +207,9 @@ jobs:
207207
output: lcov-4.info
208208
env:
209209
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
210-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
211-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
212-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
210+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
211+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
212+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
213213
RUST_LOG: cairo_native=debug
214214
steps:
215215
- uses: actions/checkout@v4
@@ -239,11 +239,11 @@ jobs:
239239
- name: add llvm deb repository
240240
uses: myci-actions/add-deb-repo@11
241241
with:
242-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
242+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
243243
repo-name: llvm-repo
244244
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
245245
- name: Install LLVM
246-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
246+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
247247
- name: Install testing tools
248248
uses: taiki-e/install-action@v2
249249
with:

Diff for: .github/workflows/publish.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ jobs:
1313
release:
1414
runs-on: ubuntu-latest
1515
env:
16-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
17-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
18-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
16+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
17+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
18+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
1919
CRATES_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
2020
steps:
2121
- name: Checkout
@@ -32,11 +32,11 @@ jobs:
3232
- name: add llvm deb repository
3333
uses: myci-actions/add-deb-repo@11
3434
with:
35-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
35+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
3636
repo-name: llvm-repo
3737
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
3838
- name: Install LLVM
39-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
39+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
4040
- name: publish the runtime
4141
run: cargo publish --token ${CRATES_TOKEN} --all-features -p cairo-native-runtime
4242
- name: publish the crate

Diff for: .github/workflows/release.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ jobs:
1313
release:
1414
runs-on: ubuntu-latest
1515
env:
16-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
17-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
18-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
16+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
17+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
18+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
1919
steps:
2020
- name: Checkout
2121
uses: actions/checkout@v3
@@ -31,11 +31,11 @@ jobs:
3131
- name: add llvm deb repository
3232
uses: myci-actions/add-deb-repo@11
3333
with:
34-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
34+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
3535
repo-name: llvm-repo
3636
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
3737
- name: Install LLVM
38-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
38+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
3939
- name: build release
4040
run: make build
4141
- name: Release

Diff for: .github/workflows/rustdoc.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ jobs:
1313
name: GitHub Pages
1414
runs-on: ubuntu-latest
1515
env:
16-
MLIR_SYS_180_PREFIX: /usr/lib/llvm-18/
17-
LLVM_SYS_181_PREFIX: /usr/lib/llvm-18/
18-
TABLEGEN_180_PREFIX: /usr/lib/llvm-18/
16+
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
17+
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
18+
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
1919
steps:
2020
- uses: actions/checkout@v4
2121
- uses: dtolnay/[email protected]
2222
- uses: Swatinem/rust-cache@v2
2323
- name: add llvm deb repository
2424
uses: myci-actions/add-deb-repo@11
2525
with:
26-
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main
26+
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main
2727
repo-name: llvm-repo
2828
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key
2929
- name: Install LLVM
30-
run: sudo apt-get install llvm-18 llvm-18-dev llvm-18-runtime clang-18 clang-tools-18 lld-18 libpolly-18-dev libmlir-18-dev mlir-18-tools
30+
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools
3131
- name: Build docs
3232
run: make doc
3333
- name: Deploy Documentation

0 commit comments

Comments
 (0)