19f77909aSYuanqiang Liu //===- TestShapeMappingInfo.cpp -------------------------------------------===// 29f77909aSYuanqiang Liu // 39f77909aSYuanqiang Liu // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 49f77909aSYuanqiang Liu // See https://llvm.org/LICENSE.txt for license information. 59f77909aSYuanqiang Liu // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 69f77909aSYuanqiang Liu // 79f77909aSYuanqiang Liu //===----------------------------------------------------------------------===// 89f77909aSYuanqiang Liu 99f77909aSYuanqiang Liu #include "mlir/Dialect/Shape/Analysis/ShapeMappingAnalysis.h" 109f77909aSYuanqiang Liu #include "mlir/IR/BuiltinOps.h" 119f77909aSYuanqiang Liu #include "mlir/Pass/Pass.h" 12a1fe1f5fSKazu Hirata #include <optional> 139f77909aSYuanqiang Liu 149f77909aSYuanqiang Liu using namespace mlir; 159f77909aSYuanqiang Liu 169f77909aSYuanqiang Liu namespace { 179f77909aSYuanqiang Liu 189f77909aSYuanqiang Liu struct TestShapeMappingPass 199f77909aSYuanqiang Liu : public PassWrapper<TestShapeMappingPass, OperationPass<ModuleOp>> { MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID__anon9f9dd8510111::TestShapeMappingPass209f77909aSYuanqiang Liu MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestShapeMappingPass) 219f77909aSYuanqiang Liu 229f77909aSYuanqiang Liu StringRef getArgument() const final { return "test-print-shape-mapping"; } getDescription__anon9f9dd8510111::TestShapeMappingPass239f77909aSYuanqiang Liu StringRef getDescription() const final { 249f77909aSYuanqiang Liu return "Print the contents of a constructed shape mapping information."; 259f77909aSYuanqiang Liu } runOnOperation__anon9f9dd8510111::TestShapeMappingPass269f77909aSYuanqiang Liu void runOnOperation() override { 27*0a81ace0SKazu Hirata std::optional<std::reference_wrapper<shape::ShapeMappingAnalysis>> 289f77909aSYuanqiang Liu maybeAnalysis = getCachedAnalysis<shape::ShapeMappingAnalysis>(); 299f77909aSYuanqiang Liu if (maybeAnalysis.has_value()) 30cbb09813SFangrui Song maybeAnalysis->get().print(llvm::errs()); 319f77909aSYuanqiang Liu else 329f77909aSYuanqiang Liu llvm::errs() << "No cached ShapeMappingAnalysis existed."; 339f77909aSYuanqiang Liu } 349f77909aSYuanqiang Liu }; 359f77909aSYuanqiang Liu 369f77909aSYuanqiang Liu } // namespace 379f77909aSYuanqiang Liu 389f77909aSYuanqiang Liu namespace mlir { 399f77909aSYuanqiang Liu namespace test { registerTestShapeMappingPass()409f77909aSYuanqiang Liuvoid registerTestShapeMappingPass() { 419f77909aSYuanqiang Liu PassRegistration<TestShapeMappingPass>(); 429f77909aSYuanqiang Liu } 439f77909aSYuanqiang Liu } // namespace test 449f77909aSYuanqiang Liu } // namespace mlir 45