CIRCT  20.0.0git
KanagawaOps.h
Go to the documentation of this file.
1 //===- KanagawaOps.h - Definition of Kanagawa dialect ops -------*- C++ -*-===//
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 
9 #ifndef CIRCT_DIALECT_KANAGAWA_KANAGAWAOPS_H
10 #define CIRCT_DIALECT_KANAGAWA_KANAGAWAOPS_H
11 
19 #include "circt/Support/LLVM.h"
20 #include "mlir/IR/Builders.h"
21 #include "mlir/IR/BuiltinOps.h"
22 #include "mlir/IR/OpImplementation.h"
23 #include "mlir/IR/RegionKindInterface.h"
24 #include "mlir/IR/SymbolTable.h"
25 #include "mlir/Interfaces/CallInterfaces.h"
26 #include "mlir/Interfaces/ControlFlowInterfaces.h"
27 #include "mlir/Interfaces/FunctionInterfaces.h"
28 #include "mlir/Interfaces/InferTypeOpInterface.h"
29 #include "mlir/Interfaces/SideEffectInterfaces.h"
30 namespace circt {
31 namespace kanagawa {
32 class ContainerOp;
33 class ThisOp;
34 
35 // Symbol name for the kanagawa operator library to be used during scheduling.
36 static constexpr const char *kKanagawaOperatorLibName =
37  "kanagawa_operator_library";
38 
39 namespace detail {
40 // Verify that `op` conforms to the ScopeOpInterface.
41 LogicalResult verifyScopeOpInterface(Operation *op);
42 
43 // Returns the %this value of an kanagawa scope-defining operation. Implemented
44 // here to hide the dependence on `kanagawa.this`, which is not defined before
45 // the interface definition.
46 mlir::FailureOr<mlir::TypedValue<ScopeRefType>> getThisFromScope(Operation *op);
47 
48 } // namespace detail
49 } // namespace kanagawa
50 } // namespace circt
51 
52 #include "circt/Dialect/Kanagawa/KanagawaInterfaces.h.inc"
53 
54 #define GET_OP_CLASSES
55 #include "circt/Dialect/Kanagawa/Kanagawa.h.inc"
56 
57 #endif // CIRCT_DIALECT_KANAGAWA_KANAGAWAOPS_H
mlir::FailureOr< mlir::TypedValue< ScopeRefType > > getThisFromScope(Operation *op)
Definition: KanagawaOps.cpp:88
LogicalResult verifyScopeOpInterface(Operation *op)
static constexpr const char * kKanagawaOperatorLibName
Definition: KanagawaOps.h:36
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21