This is the second patch in the coroutine series. It adds coroutine intrinsics and updates intrinsic cost in TargetTransformInfoImpl.h.
Documentation and overview is here: https://reviews.llvm.org/D22603
Upstreaming sequence (rough plan)
- Add documentation.
- Add coroutine intrinsics. <= we are here
- Add empty coroutine passes.
- Add coroutine devirtualization + tests.
- Add CGSCC restart trigger + tests.
- Add coroutine heap elision + tests.
- Add the rest of the logic (split into more patches)
Each coro.alloc is neither a distinct alloca or null right? I think we can mark the function return with noalias.