Change how lb_populate_module_pass_manager handles the LLVMPassManagerBuilder calls

This commit is contained in:
gingerBill
2021-03-29 16:40:39 +01:00
parent 66941aed0a
commit faa0240900
2 changed files with 31 additions and 16 deletions

View File

@@ -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;
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;
}
LLVMTargetMachineRef target_machine = LLVMCreateTargetMachine(target, target_triple, llvm_cpu, llvm_features, code_gen_level, LLVMRelocDefault, code_mode);
// 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));