aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-10-20 12:43:15 +0100
committergingerBill <bill@gingerbill.org>2020-10-20 12:43:15 +0100
commitf4b4cd0433a844875cd14030b6f210494c05239e (patch)
treec1dad99fd202781540c140cff1b019c9bd1ef8bf /src
parent4e5b8f2c61f09f3f328f1b8dcd4aeaa65a864f33 (diff)
Specific set the code gen level for -llvm-api
Diffstat (limited to 'src')
-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));