xref: /llvm-project/mlir/test/lib/Dialect/Shape/TestShapeMappingAnalysis.cpp (revision 0a81ace0047a2de93e71c82cdf0977fc989660df)
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 Liu void registerTestShapeMappingPass() {
419f77909aSYuanqiang Liu   PassRegistration<TestShapeMappingPass>();
429f77909aSYuanqiang Liu }
439f77909aSYuanqiang Liu } // namespace test
449f77909aSYuanqiang Liu } // namespace mlir
45