45 lines · cpp
1//===- TestShapeMappingInfo.cpp -------------------------------------------===//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/Dialect/Shape/Analysis/ShapeMappingAnalysis.h"10#include "mlir/IR/BuiltinOps.h"11#include "mlir/Pass/Pass.h"12#include <optional>13 14using namespace mlir;15 16namespace {17 18struct TestShapeMappingPass19 : public PassWrapper<TestShapeMappingPass, OperationPass<ModuleOp>> {20 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestShapeMappingPass)21 22 StringRef getArgument() const final { return "test-print-shape-mapping"; }23 StringRef getDescription() const final {24 return "Print the contents of a constructed shape mapping information.";25 }26 void runOnOperation() override {27 std::optional<std::reference_wrapper<shape::ShapeMappingAnalysis>>28 maybeAnalysis = getCachedAnalysis<shape::ShapeMappingAnalysis>();29 if (maybeAnalysis.has_value())30 maybeAnalysis->get().print(llvm::errs());31 else32 llvm::errs() << "No cached ShapeMappingAnalysis existed.";33 }34};35 36} // namespace37 38namespace mlir {39namespace test {40void registerTestShapeMappingPass() {41 PassRegistration<TestShapeMappingPass>();42}43} // namespace test44} // namespace mlir45