1 //===- TestShapeMappingInfo.cpp -------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
9 #include "mlir/Dialect/Shape/Analysis/ShapeMappingAnalysis.h"
10 #include "mlir/IR/BuiltinOps.h"
11 #include "mlir/Pass/Pass.h"
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());
32 llvm::errs() << "No cached ShapeMappingAnalysis existed.";
40 void registerTestShapeMappingPass() {
41 PassRegistration
<TestShapeMappingPass
>();