1//===-- Passes.td - SCF 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_SCF_PASSES 10#define MLIR_DIALECT_SCF_PASSES 11 12include "mlir/Pass/PassBase.td" 13 14def SCFBufferize : FunctionPass<"scf-bufferize"> { 15 let summary = "Bufferize the scf dialect."; 16 let constructor = "mlir::createSCFBufferizePass()"; 17} 18 19def SCFForLoopSpecialization 20 : FunctionPass<"for-loop-specialization"> { 21 let summary = "Specialize `for` loops for vectorization"; 22 let constructor = "mlir::createForLoopSpecializationPass()"; 23} 24 25def SCFParallelLoopFusion : Pass<"parallel-loop-fusion"> { 26 let summary = "Fuse adjacent parallel loops"; 27 let constructor = "mlir::createParallelLoopFusionPass()"; 28} 29 30def SCFParallelLoopSpecialization 31 : FunctionPass<"parallel-loop-specialization"> { 32 let summary = "Specialize parallel loops for vectorization"; 33 let constructor = "mlir::createParallelLoopSpecializationPass()"; 34} 35 36def SCFParallelLoopTiling : FunctionPass<"parallel-loop-tiling"> { 37 let summary = "Tile parallel loops"; 38 let constructor = "mlir::createParallelLoopTilingPass()"; 39 let options = [ 40 ListOption<"tileSizes", "parallel-loop-tile-sizes", "int64_t", 41 "Factors to tile parallel loops by", 42 "llvm::cl::ZeroOrMore, llvm::cl::MiscFlags::CommaSeparated"> 43 ]; 44 let dependentDialects = ["AffineDialect"]; 45} 46 47#endif // MLIR_DIALECT_SCF_PASSES 48