[PATCH] D71899: [Coroutines][2/6] New pass manager: coro-split

JunMa via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 30 19:55:35 PST 2019


junparser added a comment.

In D71899#1799233 <https://reviews.llvm.org/D71899#1799233>, @wenlei wrote:

> My understanding is devirt trigger is only a trick used with Legacy PM to run optimizations on coroutine funclets after coro-split. With NewPM's `CGSCCUpdateResult` infra, can we communicate that change and request passes directly with `ModuleToPostOrderCGSCCPassAdaptor`, without artificially introducing the indirect call and devirt?


The  devirt trigger here is to restart CGSCC pipeline to run coro-split again to split the coroutine function. There is no need to introduce devirt trigger in NewPM  since we call coro-split pass manually.

> I would imaging any form of outlining would require this communication if optimization is needed for the outlined region. How is that handled for outlining in general with New PM and can we follow that without the devirt trick?

However, I do think the SCC should be updated using CGSCCUpdateResult in second run of coro-split  for outlined functions


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71899/new/

https://reviews.llvm.org/D71899





More information about the llvm-commits mailing list