//===- ONNXCombine.cpp - ONNX High Level Optimizer ------------------------===// // // Copyright 2019 The IBM Research Authors. // // ============================================================================= // // This file implements a set of simple combiners for optimizing operations in // the ONNX dialect. // //===----------------------------------------------------------------------===// #include "mlir/IR/Matchers.h" #include "mlir/IR/PatternMatch.h" #include #include "src/dialect/onnx/onnx_ops.hpp" using namespace mlir; namespace { /// Include the patterns defined in the Declarative Rewrite framework. #include "src/onnx_combine.inc" } // end anonymous namespace /// Register optimization patterns as "canonicalization" patterns /// on the ONNXMatMultOp. void ONNXAddOp::getCanonicalizationPatterns( OwningRewritePatternList& results, MLIRContext* context) { results.insert(context); } /// on the ONNXIdentityOp. void ONNXIdentityOp::getCanonicalizationPatterns( OwningRewritePatternList& results, MLIRContext* context) { results.insert(context); } ///on the ONNXPadConstantValueOp. void ONNXPadConstantValueOp::getCanonicalizationPatterns( OwningRewritePatternList& result, MLIRContext* context) { result.insert(context); }