1//===-- Passes.td - Async pass definition file -------------*- tablegen -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef MLIR_DIALECT_ASYNC_PASSES 10#define MLIR_DIALECT_ASYNC_PASSES 11 12include "mlir/Pass/PassBase.td" 13 14def AsyncParallelFor : FunctionPass<"async-parallel-for"> { 15 let summary = "Convert scf.parallel operations to multiple async regions " 16 "executed concurrently for non-overlapping iteration ranges"; 17 let constructor = "mlir::createAsyncParallelForPass()"; 18 let options = [ 19 Option<"numConcurrentAsyncExecute", "num-concurrent-async-execute", 20 "int32_t", /*default=*/"4", 21 "The number of async.execute operations that will be used for concurrent " 22 "loop execution."> 23 ]; 24 let dependentDialects = ["async::AsyncDialect", "scf::SCFDialect"]; 25} 26 27def AsyncRefCounting : FunctionPass<"async-ref-counting"> { 28 let summary = "Automatic reference counting for Async dialect data types"; 29 let constructor = "mlir::createAsyncRefCountingPass()"; 30 let dependentDialects = ["async::AsyncDialect"]; 31} 32 33def AsyncRefCountingOptimization : 34 FunctionPass<"async-ref-counting-optimization"> { 35 let summary = "Optimize automatic reference counting operations for the" 36 "Async dialect by removing redundant operations"; 37 let constructor = "mlir::createAsyncRefCountingOptimizationPass()"; 38 let dependentDialects = ["async::AsyncDialect"]; 39} 40 41#endif // MLIR_DIALECT_ASYNC_PASSES 42