aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_opt.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-03-29 14:55:37 +0100
committergingerBill <bill@gingerbill.org>2021-03-29 14:55:37 +0100
commit8c20ac1bf052851c0547b77bfacb13bb53265b8c (patch)
treea1c3661a7bcb4386b2b812b1e3082bc8deff62f7 /src/llvm_backend_opt.cpp
parent371094b067e3f4123faa180ed29b07f19ba36358 (diff)
Add optional `LLVM_USE_BASIC_PASSES` build flag. If evaluates to a truthy value, it will be do only basic passes for -llvm-api
Diffstat (limited to 'src/llvm_backend_opt.cpp')
-rw-r--r--src/llvm_backend_opt.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/llvm_backend_opt.cpp b/src/llvm_backend_opt.cpp
index 395ee2fce..0c53a01aa 100644
--- a/src/llvm_backend_opt.cpp
+++ b/src/llvm_backend_opt.cpp
@@ -1,8 +1,12 @@
+#ifndef LLVM_USE_BASIC_PASSES
+#define LLVM_USE_BASIC_PASSES 0
+#endif
+
void lb_populate_function_pass_manager(LLVMPassManagerRef fpm, bool ignore_memcpy_pass) {
if (!ignore_memcpy_pass) {
LLVMAddMemCpyOptPass(fpm);
}
- if (build_context.optimization_level == 0) {
+ if (LLVM_USE_BASIC_PASSES || build_context.optimization_level == 0) {
LLVMAddPromoteMemoryToRegisterPass(fpm);
LLVMAddMergedLoadStoreMotionPass(fpm);
LLVMAddEarlyCSEPass(fpm);
@@ -95,7 +99,7 @@ void lb_populate_module_pass_manager(LLVMTargetMachineRef target_machine, LLVMPa
LLVMAddStripDeadPrototypesPass(mpm);
LLVMAddAnalysisPasses(target_machine, mpm);
LLVMAddPruneEHPass(mpm);
- if (build_context.optimization_level == 0) {
+ if (LLVM_USE_BASIC_PASSES || build_context.optimization_level == 0) {
// LLVMAddMergeFunctionsPass(mpm);
return;
}