brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 391cb50 Raw
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