aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-03-29 16:40:39 +0100
committergingerBill <bill@gingerbill.org>2021-03-29 16:40:39 +0100
commitfaa0240900b0e254f44fa54e604beacbf4890c0d (patch)
tree6a602dd793d2aa0b14092fc7eadfdfde2f525782 /src/llvm_backend.cpp
parent66941aed0ae54da23e7cb92bd656dffc295f5175 (diff)
Change how `lb_populate_module_pass_manager` handles the LLVMPassManagerBuilder calls
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));