diff options
| author | gingerBill <bill@gingerbill.org> | 2020-10-20 12:43:15 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-10-20 12:43:15 +0100 |
| commit | f4b4cd0433a844875cd14030b6f210494c05239e (patch) | |
| tree | c1dad99fd202781540c140cff1b019c9bd1ef8bf /src | |
| parent | 4e5b8f2c61f09f3f328f1b8dcd4aeaa65a864f33 (diff) | |
Specific set the code gen level for -llvm-api
Diffstat (limited to 'src')
| -rw-r--r-- | src/llvm_backend.cpp | 10 |
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)); |