From 491b282615d32ecc323163b586ac77ea384830ac Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 1 Apr 2021 10:31:46 +0100 Subject: Add extra optimization level pass -opt:2 in `lb_populate_module_pass_manager` --- src/llvm_backend_opt.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src/llvm_backend_opt.cpp') 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); -- cgit v1.2.3