[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