aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_opt.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-09-11 16:53:18 +0100
committergingerBill <bill@gingerbill.org>2021-09-11 16:53:18 +0100
commite3359a2639fdcba83d9ba7b43fefeaf1915f8f26 (patch)
treeba8c2f022f0d2b6da4467ab82238e055c4652c5c /src/llvm_backend_opt.cpp
parent344abf2cb2e9c1b27d6e786618aed633f72b89af (diff)
Prepare for LLVM 12.0.1 compatibility
Diffstat (limited to 'src/llvm_backend_opt.cpp')
-rw-r--r--src/llvm_backend_opt.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/llvm_backend_opt.cpp b/src/llvm_backend_opt.cpp
index 213005f8f..b3f1fbb95 100644
--- a/src/llvm_backend_opt.cpp
+++ b/src/llvm_backend_opt.cpp
@@ -21,13 +21,19 @@ void lb_add_must_preserve_predicate_pass(lbModule *m, LLVMPassManagerRef fpm, i3
}
+#if LLVM_VERSION_MAJOR < 12
+#define LLVM_ADD_CONSTNAT_VALUE_PASS LLVMAddConstantPropagationPass
+#else
+#define LLVM_ADD_CONSTNAT_VALUE_PASS LLVMAddCorrelatedValuePropagationPass
+#endif
+
void lb_basic_populate_function_pass_manager(LLVMPassManagerRef fpm) {
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
- LLVMAddConstantPropagationPass(fpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(fpm);
LLVMAddEarlyCSEPass(fpm);
- LLVMAddConstantPropagationPass(fpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddCFGSimplificationPass(fpm);
@@ -58,10 +64,10 @@ void lb_populate_function_pass_manager(lbModule *m, LLVMPassManagerRef fpm, bool
LLVMAddMemCpyOptPass(fpm);
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
- LLVMAddConstantPropagationPass(fpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(fpm);
LLVMAddEarlyCSEPass(fpm);
- LLVMAddConstantPropagationPass(fpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddCFGSimplificationPass(fpm);
@@ -99,10 +105,10 @@ void lb_populate_function_pass_manager_specific(lbModule *m, LLVMPassManagerRef
LLVMAddMemCpyOptPass(fpm);
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
- LLVMAddConstantPropagationPass(fpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(fpm);
LLVMAddEarlyCSEPass(fpm);
- LLVMAddConstantPropagationPass(fpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddCFGSimplificationPass(fpm);
@@ -159,7 +165,7 @@ void lb_add_function_simplifcation_passes(LLVMPassManagerRef mpm, i32 optimizati
LLVMAddInstructionCombiningPass(mpm);
LLVMAddJumpThreadingPass(mpm);
- LLVMAddCorrelatedValuePropagationPass(mpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(mpm);
LLVMAddDeadStoreEliminationPass(mpm);
LLVMAddLICMPass(mpm);
@@ -225,7 +231,7 @@ void lb_populate_module_pass_manager(LLVMTargetMachineRef target_machine, LLVMPa
LLVMAddInstructionCombiningPass(mpm);
if (optimization_level >= 2) {
LLVMAddEarlyCSEPass(mpm);
- LLVMAddCorrelatedValuePropagationPass(mpm);
+ LLVM_ADD_CONSTNAT_VALUE_PASS(mpm);
LLVMAddLICMPass(mpm);
LLVMAddLoopUnswitchPass(mpm);
LLVMAddCFGSimplificationPass(mpm);