From faa0240900b0e254f44fa54e604beacbf4890c0d Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 29 Mar 2021 16:40:39 +0100 Subject: Change how `lb_populate_module_pass_manager` handles the LLVMPassManagerBuilder calls --- src/llvm_backend.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/llvm_backend.cpp') 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)); -- cgit v1.2.3