aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <anton@korobeynikov.info>2023-09-15 09:54:38 -0700
committerGitHub <noreply@github.com>2023-09-15 09:54:38 -0700
commit51d5d7bbae92493a5bfa7cc6b519de8a5bb32fdb (patch)
tree6d111ba0d3cfd9b61e0b88aa303abe99e15a2ebb /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
parent1f33911f50294c07f672a49e311776693823d0bc (diff)
downloadllvm-51d5d7bbae92493a5bfa7cc6b519de8a5bb32fdb.zip
llvm-51d5d7bbae92493a5bfa7cc6b519de8a5bb32fdb.tar.gz
llvm-51d5d7bbae92493a5bfa7cc6b519de8a5bb32fdb.tar.bz2
Extend `retcon.once` coroutines lowering to optionally produce a normal result (#66333)
One of the main user of these kind of coroutines is swift. There yield-once (`retcon.once`) coroutines are used to temporary "expose" pointers to internal fields of various objects creating borrow scopes. However, in some cases it might be useful also to allow these coroutines to produce a normal result, but there is no convenient way to represent this (as compared to switched-resume kind of coroutines where C++ `co_return` is transformed to a member / callback call on promise object). The extension is simple: we allow continuation function to have a non-void result and accept optional extra arguments via a special `llvm.coro.end.result` intrinsic that would essentially forward them as normal results.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
0 files changed, 0 insertions, 0 deletions