38 lines · cpp
1//===- VectorToArmSMEPass.cpp - Conversion from Vector to the ArmSME dialect =//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "mlir/Conversion/VectorToArmSME/VectorToArmSME.h"10 11#include "mlir/Dialect/ArmSME/IR/ArmSME.h"12#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h"13#include "mlir/Pass/Pass.h"14#include "mlir/Transforms/GreedyPatternRewriteDriver.h"15 16namespace mlir {17#define GEN_PASS_DEF_CONVERTVECTORTOARMSMEPASS18#include "mlir/Conversion/Passes.h.inc"19} // namespace mlir20 21using namespace mlir;22using namespace mlir::vector;23 24namespace {25struct ConvertVectorToArmSMEPass26 : public impl::ConvertVectorToArmSMEPassBase<ConvertVectorToArmSMEPass> {27 28 void runOnOperation() override;29};30} // namespace31 32void ConvertVectorToArmSMEPass::runOnOperation() {33 RewritePatternSet patterns(&getContext());34 populateVectorToArmSMEPatterns(patterns, getContext());35 36 (void)applyPatternsGreedily(getOperation(), std::move(patterns));37}38