Set the default for the option enabling memory ssa use in the loop sink
pass to true for the new pass manager.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
The problem here is that LoopSink is only relevant for PGO, but MemorySSA gets computed unconditionally in the legacy PM. This problem does not affect the new pass manager, where it's possible to compute MemorySSA only if useful. Supporting this properly in LegacyPM would require something like LazyMemorySSA.
I think in this instance it might be best to do this change only for NewPM. It's best to keep both pass managers in sync, but here there is a technical reason for different treatment.
Perhaps it would also be possible to directly construct MemorySSA in the pass, if PGO is enabled with the legacy PM?
I think that would require constructing MemorySSA anew for each loop. I'm not really familiar with pass manager limitations though, maybe this is not the case.