[PATCH] D91098: [coro] Async coroutines: Allow more than 3 arguments in the dispatch function

John McCall via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 11 10:20:32 PST 2020


rjmccall added a comment.

I see.  This LGTM as an immediate fix, then.

I wonder if we shouldn't have a different IR design, though.  Maybe we should lower directly to IR that uses a pattern more like the SIL `get_unsafe_continuation` pattern?  i.e.

  %0 = call token @llvm.coro.async.continuation()  // returns the continuation function pointer; must be used by exactly one suspend
  ... // somewhere in here we store the continuation into the child context
  call void @llvm.coro.async.suspend(token %0)

I can't remember if we discussed and discarded this.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91098



More information about the llvm-commits mailing list