Browse Source

Add optional `LLVM_USE_BASIC_PASSES` build flag. If evaluates to a truthy value, it will be do only basic passes for -llvm-api

gingerBill 4 years ago
parent
commit
8c20ac1bf0
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/llvm_backend_opt.cpp

+ 6 - 2
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;
 	}