#pragma once

#include "mlir/IR/MLIRContext.h"
#include "mlir/Transforms/DialectConversion.h"

namespace onnx_mlir {

void populateConvPatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

void populateGemmPatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

void populateMatMulRewritePatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

void populatePoolPatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

void populateReluPatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

void populateConcatPatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

void populateReshapePatterns(mlir::RewritePatternSet& patterns, mlir::MLIRContext* ctx);

} // namespace onnx_mlir
