aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_opt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/llvm_backend_opt.cpp')
-rw-r--r--src/llvm_backend_opt.cpp17
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);