llvm-project/mlir/test/Dialect/Async
Eugene Zhulenev a86a9b5ef7 [mlir] Automatic reference counting for Async values + runtime support for ref counted objects
Depends On D89963

**Automatic reference counting algorithm outline:**

1. `ReturnLike` operations forward the reference counted values without
    modifying the reference count.
2. Use liveness analysis to find blocks in the CFG where the lifetime of
   reference counted values ends, and insert `drop_ref` operations after
   the last use of the value.
3. Insert `add_ref` before the `async.execute` operation capturing the
   value, and pairing `drop_ref` before the async body region terminator,
   to release the captured reference counted value when execution
   completes.
4. If the reference counted value is passed only to some of the block
   successors, insert `drop_ref` operations in the beginning of the blocks
   that do not have reference coutned value uses.

Reviewed By: silvas

Differential Revision: https://reviews.llvm.org/D90716
2020-11-20 03:08:44 -08:00
..
async-parallel-for.mlir [mlir] Transform scf.parallel to scf.for + async.execute 2020-11-13 04:02:56 -08:00
async-ref-counting-optimization.mlir [mlir] Automatic reference counting for Async values + runtime support for ref counted objects 2020-11-20 03:08:44 -08:00
async-ref-counting.mlir [mlir] Automatic reference counting for Async values + runtime support for ref counted objects 2020-11-20 03:08:44 -08:00
ops.mlir [mlir] Automatic reference counting for Async values + runtime support for ref counted objects 2020-11-20 03:08:44 -08:00
verify.mlir [mlir] Add async.await operation to async dialect 2020-10-12 21:05:36 -07:00