diff options
Diffstat (limited to 'src/zig_llvm.cpp')
| -rw-r--r-- | src/zig_llvm.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index 0d60d7a4ac..7866537c64 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -277,15 +277,8 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM }); } - // Passes for either debug or release build - if (is_debug) { - // NOTE: Always inliner will go away (in debug build) - // when the self-hosted compiler becomes mature. - pass_builder.registerPipelineStartEPCallback( - [](ModulePassManager &module_pm, OptimizationLevel OL) { - module_pm.addPass(AlwaysInlinerPass()); - }); - } else { + // Passes specific for release build + if (!is_debug) { pass_builder.registerPipelineStartEPCallback( [](ModulePassManager &module_pm, OptimizationLevel OL) { module_pm.addPass( @@ -312,10 +305,10 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM opt_level = OptimizationLevel::O3; // Initialize the PassManager - if (lto) { + if (opt_level == OptimizationLevel::O0) { + module_pm = pass_builder.buildO0DefaultPipeline(opt_level, lto); + } else if (lto) { module_pm = pass_builder.buildLTOPreLinkDefaultPipeline(opt_level); - module_pm.addPass(CanonicalizeAliasesPass()); - module_pm.addPass(NameAnonGlobalPass()); } else { module_pm = pass_builder.buildPerModuleDefaultPipeline(opt_level); } |
