Browse Source

Specific set the code gen level for -llvm-api

gingerBill 4 years ago
parent
commit
f4b4cd0433
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/llvm_backend.cpp

+ 9 - 1
src/llvm_backend.cpp

@@ -11874,7 +11874,15 @@ void lb_generate_code(lbGenerator *gen) {
 
 	// GB_ASSERT_MSG(LLVMTargetHasAsmBackend(target));
 
-	LLVMTargetMachineRef target_machine = LLVMCreateTargetMachine(target, target_triple, llvm_cpu, llvm_features, LLVMCodeGenLevelNone, LLVMRelocDefault, code_mode);
+	LLVMCodeGenOptLevel code_gen_level = LLVMCodeGenLevelNone;
+	switch (build_context.optimization_level) {
+	case 0: code_gen_level = LLVMCodeGenLevelNone;       break;
+	case 1: code_gen_level = LLVMCodeGenLevelLess;       break;
+	case 2: code_gen_level = LLVMCodeGenLevelDefault;    break;
+	case 3: code_gen_level = LLVMCodeGenLevelAggressive; break;
+	}
+
+	LLVMTargetMachineRef target_machine = LLVMCreateTargetMachine(target, target_triple, llvm_cpu, llvm_features, code_gen_level, LLVMRelocDefault, code_mode);
 	defer (LLVMDisposeTargetMachine(target_machine));