CoroCleanup is designed to lowering all the remaining coroutine intrinsics. It is required to run after CoroSplit only. However, the position of CoroCleanup now is far too late. The downside here is that the unlowered coroutine instrincs might blocking other optimizations too. So it should be a pure win to hoist the position of CoroCleanup.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
would it make sense to put all of the coroutine lower passes right at the beginning of the pipeline? e.g. around LowerExpectIntrinsicPass? is there a reason CoroSplit is interleaved in the CGSCC pass manager?
Comment Actions
@aeubanks Would you like to review this one? Although we're discussing the solution in https://discourse.llvm.org/t/address-thread-identification-problems-with-coroutine/62015, I think the change in this revision should be a pure win.