diff options
| author | gingerBill <bill@gingerbill.org> | 2021-04-01 10:31:46 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-04-01 10:31:46 +0100 |
| commit | 491b282615d32ecc323163b586ac77ea384830ac (patch) | |
| tree | 52a02452d0b2efb8d762617d4a72538deade4296 /src/llvm_backend_opt.cpp | |
| parent | 54e6c507698bf68b040400783f05686cacaddff1 (diff) | |
Add extra optimization level pass -opt:2 in `lb_populate_module_pass_manager`
Diffstat (limited to 'src/llvm_backend_opt.cpp')
| -rw-r--r-- | src/llvm_backend_opt.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/llvm_backend_opt.cpp b/src/llvm_backend_opt.cpp index cc2610ec5..31b940746 100644 --- a/src/llvm_backend_opt.cpp +++ b/src/llvm_backend_opt.cpp @@ -95,15 +95,6 @@ void lb_populate_module_pass_manager(LLVMTargetMachineRef target_machine, LLVMPa // TODO(bill): Determine which opt definitions should exist in the first place optimization_level = gb_clamp(optimization_level, 0, 2); - if (optimization_level >= 2) { - // NOTE(bill, 2021-03-29: use this causes invalid code generation) - // LLVMPassManagerBuilderRef pmb = LLVMPassManagerBuilderCreate(); - // LLVMPassManagerBuilderPopulateModulePassManager(pmb, mpm); - // LLVMPassManagerBuilderPopulateLTOPassManager(pmb, mpm, false, true); - // LLVMPassManagerBuilderSetOptLevel(pmb, optimization_level); - // LLVMPassManagerBuilderSetSizeLevel(pmb, optimization_level); - } - LLVMAddAlwaysInlinerPass(mpm); LLVMAddStripDeadPrototypesPass(mpm); LLVMAddAnalysisPasses(target_machine, mpm); @@ -114,6 +105,14 @@ void lb_populate_module_pass_manager(LLVMTargetMachineRef target_machine, LLVMPa LLVMAddGlobalDCEPass(mpm); + if (optimization_level >= 2) { + // NOTE(bill, 2021-03-29: use this causes invalid code generation) + LLVMPassManagerBuilderRef pmb = LLVMPassManagerBuilderCreate(); + LLVMPassManagerBuilderPopulateModulePassManager(pmb, mpm); + LLVMPassManagerBuilderPopulateLTOPassManager(pmb, mpm, false, true); + LLVMPassManagerBuilderSetOptLevel(pmb, optimization_level); + // LLVMPassManagerBuilderSetSizeLevel(pmb, optimization_level); + } LLVMAddIPSCCPPass(mpm); LLVMAddCalledValuePropagationPass(mpm); |