Skip to content

Commit e23e116

Browse files
Shift DCE pass to optimize imaging mode code better (#50631)
1 parent ae798cd commit e23e116

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/pipeline.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,12 @@ static void buildEarlySimplificationPipeline(ModulePassManager &MPM, PassBuilder
342342
if (O.getSpeedupLevel() >= 2) {
343343
JULIA_PASS(FPM.addPass(PropagateJuliaAddrspacesPass()));
344344
}
345+
// DCE must come before simplifycfg
346+
// codegen can generate unused statements when generating builtin calls,
347+
// and those dead statements can alter how simplifycfg optimizes the CFG
348+
FPM.addPass(DCEPass());
345349
FPM.addPass(SimplifyCFGPass(basicSimplifyCFGOptions()));
346350
if (O.getSpeedupLevel() >= 1) {
347-
FPM.addPass(DCEPass());
348351
FPM.addPass(SROAPass());
349352
}
350353
MPM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM)));

0 commit comments

Comments
 (0)