aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 10d37a08b..30e8a7f5b 100644
--- a/src/llvm_backend.cpp
+++ b/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));