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.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index a40b1c133..14a49b7da 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -13263,13 +13263,20 @@ void lb_generate_code(lbGenerator *gen) {
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);
+ 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 = LLVMCodeGenLevelDefault; break; // NOTE(bill): force -opt:3 to be the same as -opt:2
+ // case 3: code_gen_level = LLVMCodeGenLevelAggressive; break;
+ }
+
+ // NOTE(bill): Target Machine Creation
+ LLVMTargetMachineRef target_machine = LLVMCreateTargetMachine(
+ target, target_triple, llvm_cpu,
+ llvm_features,
+ code_gen_level,
+ LLVMRelocDefault,
+ code_mode);
defer (LLVMDisposeTargetMachine(target_machine));