[mlir:Async] Remove async operations if it is statically known that the parallel...
authorEugene Zhulenev <ezhulenev@google.com>
Mon, 28 Jun 2021 00:44:31 +0000 (17:44 -0700)
committerEugene Zhulenev <ezhulenev@google.com>
Tue, 29 Jun 2021 16:26:28 +0000 (09:26 -0700)
commita8f819c6d85e1990954d8846dac769bb789d2ba9
treea4e67e4a6ce975edf78eba3955f9b07ff8e2cbb0
parenta37f558682e479686cf1644a6aa70b8f46fa1b6a
[mlir:Async] Remove async operations if it is statically known that the parallel operation has a single compute block

Depends On D104850

Add a test that verifies that canonicalization removes all async overheads if it is statically known that the scf.parallel operation will be computed using a single block.

Reviewed By: herhut

Differential Revision: https://reviews.llvm.org/D104891
mlir/include/mlir/Dialect/Async/IR/Async.h
mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
mlir/lib/Dialect/Async/IR/Async.cpp
mlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
mlir/test/Dialect/Async/async-parallel-for-async-dispatch.mlir
mlir/test/Dialect/Async/async-parallel-for-canonicalize.mlir [new file with mode: 0644]