Skip to content

Commit c8311f9

Browse files
committed
Add LLVM 18 support
1 parent 48aed08 commit c8311f9

File tree

18 files changed

+105
-54
lines changed

18 files changed

+105
-54
lines changed

.github/workflows/lint.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
env:
2929
LLVM_INSTALL_PATH: ~/llvm
3030
LLVM_VERSION: "14"
31+
LLVM_LIB_NAME: "libLLVM-14.so"
3132
steps:
3233
- name: Checkout Repo
3334
uses: actions/checkout@v2
@@ -44,7 +45,7 @@ jobs:
4445
path: |
4546
${{ env.LLVM_INSTALL_PATH }}/bin/llvm-config
4647
${{ env.LLVM_INSTALL_PATH }}/bin/opt
47-
${{ env.LLVM_INSTALL_PATH }}/lib/libLLVM-${{ env.LLVM_VERSION }}.so
48+
${{ env.LLVM_INSTALL_PATH }}/lib/${{ env.LLVM_LIB_NAME }}
4849
${{ env.LLVM_INSTALL_PATH }}/lib/libLLVM.so
4950
${{ env.LLVM_INSTALL_PATH }}/include
5051
key: ${{ runner.os }}-llvm-${{ env.LLVM_VERSION }}-opt
@@ -58,7 +59,7 @@ jobs:
5859
clang-tidy \
5960
llvm-plugin/cpp/*.{cc,hh} \
6061
--warnings-as-errors='*,-llvm-header-guard' \
61-
-- -I"$HOME/llvm/include" -std=c++17 -DLLVM${{ env.LLVM_VERSION }}_0
62+
-- -I"$HOME/llvm/include" -std=c++17 -DLLVM_VERSION_MAJOR=${{ env.LLVM_VERSION }}
6263
6364
- name: Clippy Lint
6465
run: |

.github/workflows/linux.yml

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ jobs:
1515
strategy:
1616
matrix:
1717
llvm-version:
18-
- ["10", "10-0", "v10.0.1-rust-1.46/llvm-10.0.1-rust-1.46-linux.tar.gz"]
19-
- ["11", "11-0", "v11.0.1-rust-1.51/llvm-lld-11.0.1-rust-1.51-linux.tar.gz"]
20-
- ["12", "12-0", "v12.0.1-rust-1.55/llvm-lld-12.0.1-rust-1.55-linux.tar.gz"]
21-
- ["13", "13-0", "v13.0.0-rust-1.59/llvm-lld-13.0.0-rust-1.59-linux.tar.gz"]
22-
- ["14", "14-0", "v14.0.6-rust-1.64/llvm-lld-14.0.6-rust-1.64-linux.tar.gz"]
23-
- ["15", "15-0", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-linux.tar.gz"]
24-
- ["16", "16-0", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-linux.tar.gz"]
25-
- ["17", "17-0", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-linux.tar.gz"]
18+
- ["10", "10-0", "v10.0.1-rust-1.46/llvm-10.0.1-rust-1.46-linux.tar.gz", "libLLVM-10.so"]
19+
- ["11", "11-0", "v11.0.1-rust-1.51/llvm-lld-11.0.1-rust-1.51-linux.tar.gz", "libLLVM-11.so"]
20+
- ["12", "12-0", "v12.0.1-rust-1.55/llvm-lld-12.0.1-rust-1.55-linux.tar.gz", "libLLVM-12.so"]
21+
- ["13", "13-0", "v13.0.0-rust-1.59/llvm-lld-13.0.0-rust-1.59-linux.tar.gz", "libLLVM-13.so"]
22+
- ["14", "14-0", "v14.0.6-rust-1.64/llvm-lld-14.0.6-rust-1.64-linux.tar.gz", "libLLVM-14.so"]
23+
- ["15", "15-0", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-linux.tar.gz", "libLLVM-15.so"]
24+
- ["16", "16-0", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-linux.tar.gz", "libLLVM-16.so"]
25+
- ["17", "17-0", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-linux.tar.gz", "libLLVM-17.so"]
26+
- ["18", "18-0", "v18.1.2-rust-1.78/llvm-lld-18.1.2-rust-1.78-linux.tar.gz", "libLLVM.so.18.1"]
2627
steps:
2728
- name: Checkout Repo
2829
uses: actions/checkout@v2
@@ -39,7 +40,7 @@ jobs:
3940
path: |
4041
${{ env.LLVM_INSTALL_PATH }}/bin/llvm-config
4142
${{ env.LLVM_INSTALL_PATH }}/bin/opt
42-
${{ env.LLVM_INSTALL_PATH }}/lib/libLLVM-${{ matrix.llvm-version[0] }}.so
43+
${{ env.LLVM_INSTALL_PATH }}/lib/${{ matrix.llvm-version[3] }}
4344
${{ env.LLVM_INSTALL_PATH }}/lib/libLLVM.so
4445
${{ env.LLVM_INSTALL_PATH }}/include
4546
key: ${{ runner.os }}-llvm-${{ matrix.llvm-version[0] }}-opt
@@ -105,13 +106,14 @@ jobs:
105106
strategy:
106107
matrix:
107108
llvm-version:
108-
- ["11", "11-0", "1.51", "v11.0.1-rust-1.51/llvm-lld-11.0.1-rust-1.51-linux.tar.gz"]
109-
- ["12", "12-0", "1.55", "v12.0.1-rust-1.55/llvm-lld-12.0.1-rust-1.55-linux.tar.gz"]
110-
- ["13", "13-0", "1.59", "v13.0.0-rust-1.59/llvm-lld-13.0.0-rust-1.59-linux.tar.gz"]
111-
- ["14", "14-0", "1.64", "v14.0.6-rust-1.64/llvm-lld-14.0.6-rust-1.64-linux.tar.gz"]
112-
- ["15", "15-0", "1.65", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-linux.tar.gz"]
113-
- ["16", "16-0", "1.71", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-linux.tar.gz"]
114-
- ["17", "17-0", "1.75", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-linux.tar.gz"]
109+
- ["11", "11-0", "1.51", "v11.0.1-rust-1.51/llvm-lld-11.0.1-rust-1.51-linux.tar.gz", "libLLVM-11.so"]
110+
- ["12", "12-0", "1.55", "v12.0.1-rust-1.55/llvm-lld-12.0.1-rust-1.55-linux.tar.gz", "libLLVM-12.so"]
111+
- ["13", "13-0", "1.59", "v13.0.0-rust-1.59/llvm-lld-13.0.0-rust-1.59-linux.tar.gz", "libLLVM-13.so"]
112+
- ["14", "14-0", "1.64", "v14.0.6-rust-1.64/llvm-lld-14.0.6-rust-1.64-linux.tar.gz", "libLLVM-14.so"]
113+
- ["15", "15-0", "1.65", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-linux.tar.gz", "libLLVM-15.so"]
114+
- ["16", "16-0", "1.71", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-linux.tar.gz", "libLLVM-16.so"]
115+
- ["17", "17-0", "1.75", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-linux.tar.gz", "libLLVM-17.so"]
116+
- ["18", "18-0", "1.78", "v18.1.2-rust-1.78/llvm-lld-18.1.2-rust-1.78-linux.tar.gz", "libLLVM.so.18.1"]
115117
steps:
116118
- name: Checkout Repo
117119
uses: actions/checkout@v2
@@ -129,7 +131,7 @@ jobs:
129131
${{ env.LLVM_INSTALL_PATH }}/bin/llvm-config
130132
${{ env.LLVM_INSTALL_PATH }}/bin/lld
131133
${{ env.LLVM_INSTALL_PATH }}/bin/ld.lld
132-
${{ env.LLVM_INSTALL_PATH }}/lib/libLLVM-${{ matrix.llvm-version[0] }}.so
134+
${{ env.LLVM_INSTALL_PATH }}/lib/${{ matrix.llvm-version[4] }}
133135
${{ env.LLVM_INSTALL_PATH }}/lib/libLLVM.so
134136
${{ env.LLVM_INSTALL_PATH }}/include
135137
key: ${{ runner.os }}-llvm-${{ matrix.llvm-version[0] }}-lld

.github/workflows/macos.yml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@ env:
88
jobs:
99
macos-tests:
1010
name: "LLVM ${{ matrix.llvm-version[0] }} MacOS"
11-
runs-on: macos-latest
11+
runs-on: ${{ matrix.llvm-version[3] }}
1212
env:
1313
LLVM_INSTALL_PATH: ~/llvm
1414
PLUGINS_PATH: tests/plugins/target/debug
1515
strategy:
1616
matrix:
1717
llvm-version:
18-
- ["11", "11-0", "v11.0.1-rust-1.51/llvm-11.0.1-rust-1.51-macos.tar.gz"]
19-
- ["12", "12-0", "v12.0.1-rust-1.55/llvm-lld-12.0.1-rust-1.55-macos.tar.gz"]
20-
- ["13", "13-0", "v13.0.0-rust-1.59/llvm-lld-13.0.0-rust-1.59-macos.tar.gz"]
21-
- ["14", "14-0", "v14.0.6-rust-1.64/llvm-lld-14.0.6-rust-1.64-macos.tar.gz"]
22-
- ["15", "15-0", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-macos.tar.gz"]
23-
- ["16", "16-0", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-macos.tar.gz"]
24-
- ["17", "17-0", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-macos.tar.gz"]
18+
- ["11", "11-0", "v11.0.1-rust-1.51/llvm-11.0.1-rust-1.51-macos.tar.gz", "macos-13"]
19+
- ["12", "12-0", "v12.0.1-rust-1.55/llvm-lld-12.0.1-rust-1.55-macos.tar.gz", "macos-13"]
20+
- ["13", "13-0", "v13.0.0-rust-1.59/llvm-lld-13.0.0-rust-1.59-macos.tar.gz", "macos-13"]
21+
- ["14", "14-0", "v14.0.6-rust-1.64/llvm-lld-14.0.6-rust-1.64-macos.tar.gz", "macos-13"]
22+
- ["15", "15-0", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-macos.tar.gz", "macos-13"]
23+
- ["16", "16-0", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-macos.tar.gz", "macos-13"]
24+
- ["17", "17-0", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-macos.tar.gz", "macos-13"]
25+
- ["18", "18-0", "v18.1.2-rust-1.78/llvm-lld-18.1.2-rust-1.78-macos.tar.gz", "macos-latest"]
2526
steps:
2627
- name: Checkout Repo
2728
uses: actions/checkout@v2

.github/workflows/windows.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ jobs:
2222
- ["15", "15-0", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-windows.7z"]
2323
- ["16", "16-0", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-windows.7z"]
2424
- ["17", "17-0", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-windows.7z"]
25+
- ["18", "18-0", "v18.1.2-rust-1.78/llvm-lld-18.1.2-rust-1.78-windows.7z"]
2526
steps:
2627
- name: Checkout Repo
2728
uses: actions/checkout@v2
@@ -110,6 +111,7 @@ jobs:
110111
- ["15", "15-0", "1.65", "v15.0.0-rust-1.65/llvm-lld-15.0.0-rust-1.65-windows.7z"]
111112
- ["16", "16-0", "1.71", "v16.0.2-rust-1.71/llvm-lld-16.0.2-rust-1.71-windows.7z"]
112113
- ["17", "17-0", "1.75", "v17.0.6-rust-1.75/llvm-lld-17.0.6-rust-1.75-windows.7z"]
114+
- ["18", "18-0", "1.78", "v18.1.2-rust-1.78/llvm-lld-18.1.2-rust-1.78-windows.7z"]
113115
steps:
114116
- name: Checkout Repo
115117
uses: actions/checkout@v2

README.md

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,10 @@ When importing this crate in your `Cargo.toml`, you will need to specify the LLV
2727

2828
```toml
2929
[dependencies]
30-
llvm-plugin = { version = "0.5", features = ["llvm10-0"] }
30+
llvm-plugin = { git = "https://github.com/jamesmth/llvm-plugin-rs", branch = "master", features = ["llvm18-0"] }
3131
```
3232

33-
Supported versions:
34-
35-
| LLVM Version | Cargo Feature Flag | Linux | Windows | MacOS |
36-
| :----------: | :----------------: | :---------: | :---------: | :---------: |
37-
| 10.0.x | llvm10-0 | **✓** | **✗** | **✓** |
38-
| 11.0.x | llvm11-0 | **✓** | **✓** | **✓** |
39-
| 12.0.x | llvm12-0 | **✓** | **✓** | **✓** |
40-
| 13.0.x | llvm13-0 | **✓** | **✓** | **✓** |
41-
| 14.0.x | llvm14-0 | **✓** | **✓** | **✓** |
42-
| 15.0.x | llvm15-0 | **✓** | **✓** | **✓** |
43-
| 16.0.x | llvm16-0 | **✓** | **✓** | **✓** |
44-
| 17.0.x | llvm17-0 | **✓** | **✓** | **✓** |
33+
Supported versions: LLVM 10-18 mapping to a cargo feature flag `llvm*-0` where `*` corresponds to the LLVM major version.
4534

4635
## Getting Started
4736

examples/strings.rs

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,12 @@ fn create_decode_fn<'a>(module: &mut Module<'a>) -> FunctionValue<'a> {
151151
"",
152152
)
153153
.unwrap();
154-
#[cfg(not(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0")))]
154+
#[cfg(not(any(
155+
feature = "llvm15-0",
156+
feature = "llvm16-0",
157+
feature = "llvm17-0",
158+
feature = "llvm18-0",
159+
)))]
155160
let var10 = unsafe {
156161
builder.build_gep(
157162
phi1.as_basic_value().into_pointer_value(),
@@ -160,7 +165,12 @@ fn create_decode_fn<'a>(module: &mut Module<'a>) -> FunctionValue<'a> {
160165
)
161166
}
162167
.unwrap();
163-
#[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0"))]
168+
#[cfg(any(
169+
feature = "llvm15-0",
170+
feature = "llvm16-0",
171+
feature = "llvm17-0",
172+
feature = "llvm18-0",
173+
))]
164174
let var10 = unsafe {
165175
builder.build_gep(
166176
cx.i8_type(),
@@ -170,9 +180,19 @@ fn create_decode_fn<'a>(module: &mut Module<'a>) -> FunctionValue<'a> {
170180
)
171181
}
172182
.unwrap();
173-
#[cfg(not(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0")))]
183+
#[cfg(not(any(
184+
feature = "llvm15-0",
185+
feature = "llvm16-0",
186+
feature = "llvm17-0",
187+
feature = "llvm18-0",
188+
)))]
174189
let var11 = builder.build_load(phi1.as_basic_value().into_pointer_value(), "");
175-
#[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0"))]
190+
#[cfg(any(
191+
feature = "llvm15-0",
192+
feature = "llvm16-0",
193+
feature = "llvm17-0",
194+
feature = "llvm18-0",
195+
))]
176196
let var11 = builder
177197
.build_load(cx.i8_type(), phi1.as_basic_value().into_pointer_value(), "")
178198
.unwrap();
@@ -229,11 +249,21 @@ fn create_decode_stub<'a>(
229249
(s, len)
230250
}
231251
GlobalString::Struct(gs, id, len) => {
232-
#[cfg(not(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0")))]
252+
#[cfg(not(any(
253+
feature = "llvm15-0",
254+
feature = "llvm16-0",
255+
feature = "llvm17-0",
256+
feature = "llvm18-0",
257+
)))]
233258
let s = builder
234259
.build_struct_gep(gs.as_pointer_value(), id, "")
235260
.unwrap();
236-
#[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0"))]
261+
#[cfg(any(
262+
feature = "llvm15-0",
263+
feature = "llvm16-0",
264+
feature = "llvm17-0",
265+
feature = "llvm18-0",
266+
))]
237267
let s = {
238268
let i8_ty_ptr = cx.i8_type().ptr_type(AddressSpace::default());
239269
let struct_ty = cx.struct_type(&[i8_ty_ptr.into()], false);

llvm-plugin/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ llvm14-0 = ["inkwell/llvm14-0-no-llvm-linking"]
3232
llvm15-0 = ["inkwell/llvm15-0-no-llvm-linking"]
3333
llvm16-0 = ["inkwell/llvm16-0-no-llvm-linking"]
3434
llvm17-0 = ["inkwell/llvm17-0-no-llvm-linking"]
35+
llvm18-0 = ["inkwell/llvm18-0-no-llvm-linking"]
3536

3637
target-x86 = ["inkwell/target-x86"]
3738
target-arm = ["inkwell/target-arm"]
@@ -52,8 +53,8 @@ target-riscv = ["inkwell/target-riscv"]
5253
target-all = ["inkwell/target-all"]
5354

5455
[dependencies]
55-
inkwell = "0.4"
56-
inkwell_internals = "0.9.0"
56+
inkwell = { git = "https://github.com/TheDan64/inkwell", branch = "master" }
57+
inkwell_internals = { git = "https://github.com/TheDan64/inkwell", branch = "master" }
5758
llvm-plugin-macros = { path = "../llvm-plugin-macros", version = "0.2", optional = true }
5859

5960
[build-dependencies]

llvm-plugin/build.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ fn main() {
2828
build.flag_if_supported("-fno-rtti");
2929
}
3030

31-
build.define("LLVM_VERSION_MAJOR", major.to_string().as_str());
32-
build.define("LLVM_VERSION_MINOR", minor.to_string().as_str());
33-
3431
build.warnings(false);
3532
build.compile("llvm-plugin-cpp");
3633

@@ -216,6 +213,8 @@ mod llvm_sys {
216213
(16, 0)
217214
} else if cfg!(feature = "llvm17-0") {
218215
(17, 0)
216+
} else if cfg!(feature = "llvm18-0") {
217+
(18, 0)
219218
} else {
220219
panic!("Missing llvm* feature")
221220
}

tests/plugins/plugin1-lld/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1717
llvm15-0 = ["llvm-plugin/llvm15-0"]
1818
llvm16-0 = ["llvm-plugin/llvm16-0"]
1919
llvm17-0 = ["llvm-plugin/llvm17-0"]
20+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2021

2122
target-x86 = ["llvm-plugin/target-x86"]
2223
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin1/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin2/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin3/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin4/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin5/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin6/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin6/src/lib.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ fn plugin_registrar(builder: &mut PassBuilder) {
2929
feature = "llvm15-0",
3030
feature = "llvm16-0",
3131
feature = "llvm17-0",
32+
feature = "llvm18-0",
3233
))]
3334
builder.add_pipeline_start_ep_callback(|manager, opt| {
3435
assert!(matches!(opt, OptimizationLevel::O3));
@@ -42,6 +43,7 @@ fn plugin_registrar(builder: &mut PassBuilder) {
4243
feature = "llvm15-0",
4344
feature = "llvm16-0",
4445
feature = "llvm17-0",
46+
feature = "llvm18-0",
4547
))]
4648
builder.add_pipeline_early_simplification_ep_callback(|manager, opt| {
4749
assert!(matches!(opt, OptimizationLevel::O3));
@@ -56,13 +58,19 @@ fn plugin_registrar(builder: &mut PassBuilder) {
5658
feature = "llvm15-0",
5759
feature = "llvm16-0",
5860
feature = "llvm17-0",
61+
feature = "llvm18-0",
5962
))]
6063
builder.add_optimizer_last_ep_callback(|manager, opt| {
6164
assert!(matches!(opt, OptimizationLevel::O3));
6265
manager.add_pass(OptimizerLastPass);
6366
});
6467

65-
#[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0"))]
68+
#[cfg(any(
69+
feature = "llvm15-0",
70+
feature = "llvm16-0",
71+
feature = "llvm17-0",
72+
feature = "llvm18-0",
73+
))]
6674
builder.add_optimizer_early_ep_callback(|manager, opt| {
6775
assert!(matches!(opt, OptimizationLevel::O3));
6876
manager.add_pass(OptimizerEarlyPass);

tests/plugins/plugin7/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ llvm14-0 = ["llvm-plugin/llvm14-0"]
1818
llvm15-0 = ["llvm-plugin/llvm15-0"]
1919
llvm16-0 = ["llvm-plugin/llvm16-0"]
2020
llvm17-0 = ["llvm-plugin/llvm17-0"]
21+
llvm18-0 = ["llvm-plugin/llvm18-0"]
2122

2223
target-x86 = ["llvm-plugin/target-x86"]
2324
target-arm = ["llvm-plugin/target-arm"]

tests/plugins/plugin7/src/lib.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,23 @@ use llvm_plugin::{LlvmModulePass, ModuleAnalysisManager, PassBuilder, PreservedA
33

44
#[llvm_plugin::plugin(name = "llvm_plugin", version = "0.1")]
55
fn plugin_registrar(builder: &mut PassBuilder) {
6-
#[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0"))]
6+
#[cfg(any(
7+
feature = "llvm15-0",
8+
feature = "llvm16-0",
9+
feature = "llvm17-0",
10+
feature = "llvm18-0",
11+
))]
712
builder.add_full_lto_early_ep_callback(|manager, opt| {
813
assert!(matches!(opt, llvm_plugin::OptimizationLevel::O3));
914
manager.add_pass(FullLtoEarlyPass);
1015
});
1116

12-
#[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0"))]
17+
#[cfg(any(
18+
feature = "llvm15-0",
19+
feature = "llvm16-0",
20+
feature = "llvm17-0",
21+
feature = "llvm18-0",
22+
))]
1323
builder.add_full_lto_last_ep_callback(|manager, opt| {
1424
assert!(matches!(opt, llvm_plugin::OptimizationLevel::O3));
1525
manager.add_pass(FullLtoLastPass);

0 commit comments

Comments
 (0)