std::unique_ptr<OperationPass<FuncOp>> createAsyncParallelForPass();
+std::unique_ptr<OperationPass<FuncOp>>
+createAsyncParallelForPass(int numWorkerThreads);
+
std::unique_ptr<OperationPass<FuncOp>> createAsyncRefCountingPass();
std::unique_ptr<OperationPass<FuncOp>> createAsyncRefCountingOptimizationPass();
struct AsyncParallelForPass
: public AsyncParallelForBase<AsyncParallelForPass> {
AsyncParallelForPass() = default;
+ AsyncParallelForPass(int numWorkerThreads) {
+ assert(numWorkerThreads >= 1);
+ numConcurrentAsyncExecute = numWorkerThreads;
+ }
void runOnFunction() override;
};
std::unique_ptr<OperationPass<FuncOp>> mlir::createAsyncParallelForPass() {
return std::make_unique<AsyncParallelForPass>();
}
+
+std::unique_ptr<OperationPass<FuncOp>>
+mlir::createAsyncParallelForPass(int numWorkerThreads) {
+ return std::make_unique<AsyncParallelForPass>(numWorkerThreads);
+}