Fix GCC build problem with 288f05f related to SmallVector. (#116958)
[llvm-project.git] / mlir / test / lib / Dialect / Shape / TestShapeMappingAnalysis.cpp
blob391cb50c4bd48ca8c7ac7b12a874acc00042c298
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-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #include "mlir/Dialect/Shape/Analysis/ShapeMappingAnalysis.h"
10 #include "mlir/IR/BuiltinOps.h"
11 #include "mlir/Pass/Pass.h"
12 #include <optional>
14 using namespace mlir;
16 namespace {
18 struct TestShapeMappingPass
19 : public PassWrapper<TestShapeMappingPass, OperationPass<ModuleOp>> {
20 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestShapeMappingPass)
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.";
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 else
32 llvm::errs() << "No cached ShapeMappingAnalysis existed.";
36 } // namespace
38 namespace mlir {
39 namespace test {
40 void registerTestShapeMappingPass() {
41 PassRegistration<TestShapeMappingPass>();
43 } // namespace test
44 } // namespace mlir