mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 13:17:31 +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
	 liang.he
						liang.he