mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 06:55:07 +00:00
Use another default pipeline when opt-level is 0 (#2624)
According to the description of `buildPerModuleDefaultPipeline()` and `buildLTOPreLinkDefaultPipeline()`, it is not allowed to call them with `O0` level. Use `buildO0DefaultPipeline` instead when the opt-level is 0.
This commit is contained in:
parent
059fbfc252
commit
e73993709e
|
@ -343,18 +343,23 @@ aot_apply_llvm_new_pass_manager(AOTCompContext *comp_ctx, LLVMModuleRef module)
|
|||
ExitOnErr(PB.parsePassPipeline(MPM, comp_ctx->llvm_passes));
|
||||
}
|
||||
|
||||
if (!disable_llvm_lto) {
|
||||
/* Apply LTO for AOT mode */
|
||||
if (comp_ctx->comp_data->func_count >= 10
|
||||
|| comp_ctx->enable_llvm_pgo || comp_ctx->use_prof_file)
|
||||
/* Add the pre-link optimizations if the func count
|
||||
is large enough or PGO is enabled */
|
||||
MPM.addPass(PB.buildLTOPreLinkDefaultPipeline(OL));
|
||||
else
|
||||
MPM.addPass(PB.buildLTODefaultPipeline(OL, NULL));
|
||||
if (OptimizationLevel::O0 == OL) {
|
||||
MPM.addPass(PB.buildO0DefaultPipeline(OL));
|
||||
}
|
||||
else {
|
||||
MPM.addPass(PB.buildPerModuleDefaultPipeline(OL));
|
||||
if (!disable_llvm_lto) {
|
||||
/* Apply LTO for AOT mode */
|
||||
if (comp_ctx->comp_data->func_count >= 10
|
||||
|| comp_ctx->enable_llvm_pgo || comp_ctx->use_prof_file)
|
||||
/* Add the pre-link optimizations if the func count
|
||||
is large enough or PGO is enabled */
|
||||
MPM.addPass(PB.buildLTOPreLinkDefaultPipeline(OL));
|
||||
else
|
||||
MPM.addPass(PB.buildLTODefaultPipeline(OL, NULL));
|
||||
}
|
||||
else {
|
||||
MPM.addPass(PB.buildPerModuleDefaultPipeline(OL));
|
||||
}
|
||||
}
|
||||
|
||||
/* Run specific passes for AOT indirect mode in last since general
|
||||
|
|
Loading…
Reference in New Issue
Block a user