Skip to content

Commit 7fe29ca

Browse files
committed
Use LLVM_VERSION_{MAJOR,MINOR} define in C++ code
1 parent 9fb49ed commit 7fe29ca

File tree

2 files changed

+13
-30
lines changed

2 files changed

+13
-30
lines changed

llvm-plugin/build.rs

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

31-
#[cfg(feature = "llvm10-0")]
32-
build.define("LLVM10_0", None);
33-
#[cfg(feature = "llvm11-0")]
34-
build.define("LLVM11_0", None);
35-
#[cfg(feature = "llvm12-0")]
36-
build.define("LLVM12_0", None);
37-
#[cfg(feature = "llvm13-0")]
38-
build.define("LLVM13_0", None);
39-
#[cfg(feature = "llvm14-0")]
40-
build.define("LLVM14_0", None);
41-
#[cfg(feature = "llvm15-0")]
42-
build.define("LLVM15_0", None);
43-
#[cfg(feature = "llvm16-0")]
44-
build.define("LLVM16_0", None);
31+
build.define("LLVM_VERSION_MAJOR", major.to_string().as_str());
32+
build.define("LLVM_VERSION_MINOR", minor.to_string().as_str());
4533

4634
build.warnings(false);
4735
build.compile("llvm-plugin-cpp");

llvm-plugin/cpp/ffi.cc

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "common.hh"
1010
#include "pass.hh"
1111

12-
#if defined(LLVM14_0) || defined(LLVM15_0) || defined(LLVM16_0)
12+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 14)
1313
#include <llvm/Passes/OptimizationLevel.h>
1414
using LlvmOptLevel = llvm::OptimizationLevel;
1515
#else
@@ -19,7 +19,7 @@ using LlvmOptLevel = llvm::PassBuilder::OptimizationLevel;
1919
enum class OptimizationLevel { kO0, kO1, kO2, kO3, kOs, kOz };
2020

2121
auto getFFIOptimizationLevel(LlvmOptLevel Opt) -> OptimizationLevel {
22-
#ifdef LLVM10_0
22+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR == 10)
2323
if (Opt == LlvmOptLevel::O0) {
2424
return OptimizationLevel::kO0;
2525
}
@@ -39,7 +39,7 @@ auto getFFIOptimizationLevel(LlvmOptLevel Opt) -> OptimizationLevel {
3939
// Starting from LLVM-11, llvm::OptimizationLevel::Ox is no longer
4040
// an enum but a global static. Using these global statics on Windows
4141
// would not compile, because an LLVM plugin links to opt.exe. The
42-
// later doesn't export such symbols.
42+
// latter doesn't export such symbols.
4343
if (Opt.getSpeedupLevel() == 0 && Opt.getSizeLevel() == 0) {
4444
return OptimizationLevel::kO0;
4545
}
@@ -87,7 +87,7 @@ auto functionAnalysisManagerRegisterPass(
8787
});
8888
}
8989

90-
#if defined(LLVM15_0) || defined(LLVM16_0)
90+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 15)
9191
auto passBuilderAddFullLinkTimeOptimizationLastEPCallback(
9292
llvm::PassBuilder &Builder, const void *DataPtr,
9393
void (*Deleter)(const void *),
@@ -104,7 +104,7 @@ auto passBuilderAddFullLinkTimeOptimizationLastEPCallback(
104104
}
105105
#endif
106106

107-
#if defined(LLVM15_0) || defined(LLVM16_0)
107+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 15)
108108
auto passBuilderAddFullLinkTimeOptimizationEarlyEPCallback(
109109
llvm::PassBuilder &Builder, const void *DataPtr,
110110
void (*Deleter)(const void *),
@@ -121,8 +121,7 @@ auto passBuilderAddFullLinkTimeOptimizationEarlyEPCallback(
121121
}
122122
#endif
123123

124-
#ifdef LLVM10_0
125-
#else
124+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 11)
126125
auto passBuilderAddOptimizerLastEPCallback(
127126
llvm::PassBuilder &Builder, const void *DataPtr,
128127
void (*Deleter)(const void *),
@@ -139,7 +138,7 @@ auto passBuilderAddOptimizerLastEPCallback(
139138
}
140139
#endif
141140

142-
#if defined(LLVM15_0) || defined(LLVM16_0)
141+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 15)
143142
auto passBuilderAddOptimizerEarlyEPCallback(
144143
llvm::PassBuilder &Builder, const void *DataPtr,
145144
void (*Deleter)(const void *),
@@ -156,8 +155,7 @@ auto passBuilderAddOptimizerEarlyEPCallback(
156155
}
157156
#endif
158157

159-
#if defined(LLVM10_0) || defined(LLVM11_0)
160-
#else
158+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 12)
161159
auto passBuilderAddPipelineEarlySimplificationEPCallback(
162160
llvm::PassBuilder &Builder, const void *DataPtr,
163161
void (*Deleter)(const void *),
@@ -174,8 +172,7 @@ auto passBuilderAddPipelineEarlySimplificationEPCallback(
174172
}
175173
#endif
176174

177-
#if defined(LLVM10_0) || defined(LLVM11_0)
178-
#else
175+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 12)
179176
auto passBuilderAddPipelineStartEPCallback(
180177
llvm::PassBuilder &Builder, const void *DataPtr,
181178
void (*Deleter)(const void *),
@@ -308,15 +305,13 @@ auto functionPassManagerAddPass(llvm::FunctionPassManager &PassManager,
308305
PassManager.addPass(Pass<FunctionIR>{Entrypoint, {PassData, Deleter}});
309306
}
310307

311-
#if defined(LLVM10_0) || defined(LLVM11_0)
312-
#else
308+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 12)
313309
auto modulePassManagerIsEmpty(llvm::ModulePassManager &PassManager) -> bool {
314310
return PassManager.isEmpty();
315311
}
316312
#endif
317313

318-
#if defined(LLVM10_0) || defined(LLVM11_0)
319-
#else
314+
#if defined(LLVM_VERSION_MAJOR) && (LLVM_VERSION_MAJOR >= 12)
320315
auto functionPassManagerIsEmpty(llvm::FunctionPassManager &PassManager)
321316
-> bool {
322317
return PassManager.isEmpty();

0 commit comments

Comments
 (0)