This is the third patch in the coroutine series. It adds boilerplate code for all coroutine passes that do absolutely nothing and adds a small test to verify that passes execute in expected order or not at all if not enabled.
Documentation and overview is here: http://llvm.org/docs/Coroutines.html.
Upstreaming sequence (rough plan)
1.Add documentation. (https://reviews.llvm.org/D22603)
2.Add coroutine intrinsics. (https://reviews.llvm.org/D22659)
3.Add empty coroutine passes. <= we are here
4.Add coroutine devirtualization + tests.
5.Add CGSCC restart trigger + tests.
6.Add coroutine heap elision + tests.
7.Add the rest of the logic (split into more patches)
FWIW, I think this is independent of the coroutines stuff, and I'd suggest splitting it out and sending it separately.
(And FWIW, I'm very much in favor of the general idea.)