MLIR  20.0.0git
LoopExtension.cpp
Go to the documentation of this file.
1 //===- LoopExtension.cpp - Loop extension for the Transform dialect -------===//
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 //===----------------------------------------------------------------------===//
8 
10 
14 
15 using namespace mlir;
16 
17 namespace {
18 /// Loop extension of the Transform dialect. This provides "core" transform
19 /// operations for loop-like ops.
20 class LoopExtension
21  : public transform::TransformDialectExtension<LoopExtension> {
22 public:
24 
25  void init() {
26  registerTransformOps<
27 #define GET_OP_LIST
28 #include "mlir/Dialect/Transform/LoopExtension/LoopExtensionOps.cpp.inc"
29  >();
30  }
31 };
32 } // namespace
33 
35  dialectRegistry.addExtensions<LoopExtension>();
36 }
#define MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(CLASS_NAME)
Definition: TypeID.h:274
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect.
void addExtensions()
Add the given extensions to the registry.
Base class for extensions of the Transform dialect that supports injecting operations into the Transf...
void registerLoopExtension(DialectRegistry &dialectRegistry)
Registers the loop extension of the Transform dialect in the given registry.
Include the generated interface declarations.