This is an archive of the discontinued LLVM Phabricator instance.

[mlir][async] Allow to call async.execute inside async.func
ClosedPublic

Authored by yijia1212 on Jan 13 2023, 2:42 PM.

Details

Summary

This change added support of calling async execute inside async.func.
Ex.

async.func @async_func_call_func() -> !async.token {
  %token = async.execute {
    %c0 = arith.constant 0 : index
    memref.store %arg0, %arg1[%c0] : memref<1xf32>
    async.yield
  }
  async.await %token : !async.token
  return
}

Diff Detail

Event Timeline

yijia1212 created this revision.Jan 13 2023, 2:42 PM
yijia1212 requested review of this revision.Jan 13 2023, 2:42 PM
yijia1212 retitled this revision from [mlir][async] Allow async func to call regular func ans async.execute to [mlir][async] Allow async func to call regular func and async.execute.Jan 13 2023, 2:43 PM
yijia1212 edited the summary of this revision. (Show Details)
yijia1212 edited the summary of this revision. (Show Details)
yijia1212 updated this revision to Diff 489141.Jan 13 2023, 3:30 PM

Revert changes of async.call

yijia1212 retitled this revision from [mlir][async] Allow async func to call regular func and async.execute to [mlir][async] Allow to call async.execute inside async.func.Jan 13 2023, 3:32 PM
yijia1212 edited the summary of this revision. (Show Details)
ezhulenev accepted this revision.Jan 13 2023, 3:37 PM
This revision is now accepted and ready to land.Jan 13 2023, 3:37 PM
This revision was automatically updated to reflect the committed changes.