[all-commits] [llvm/llvm-project] 431337: [coro] Async coroutines: Allow more than 3 argumen...
Arnold Schwaighofer via All-commits
all-commits at lists.llvm.org
Wed Nov 11 15:27:56 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 431337662ee01bedb2f2a45fba960bfc7388adb6
https://github.com/llvm/llvm-project/commit/431337662ee01bedb2f2a45fba960bfc7388adb6
Author: Arnold Schwaighofer <aschwaighofer at apple.com>
Date: 2020-11-11 (Wed, 11 Nov 2020)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
M llvm/lib/Transforms/Coroutines/CoroInstr.h
M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
M llvm/lib/Transforms/Coroutines/Coroutines.cpp
M llvm/test/Transforms/Coroutines/coro-async.ll
Log Message:
-----------
[coro] Async coroutines: Allow more than 3 arguments in the dispatch function
We need to be able to call function pointers. Inline the dispatch
function.
Also inline the context projection function.
Transfer debug locations from the suspend point to the inlined functions.
Use the function argument index instead of the function argument in
coro.id.async. This solves any spurious use issues.
Coerce the arguments of the tail call function at a suspend point. The LLVM
optimizer seems to drop casts leading to a vararg intrinsic.
rdar://70097093
Differential Revision: https://reviews.llvm.org/D91098
More information about the All-commits
mailing list