CIRCT  19.0.0git
IbisOps.h
Go to the documentation of this file.
1 //===- IbisOps.h - Definition of Ibis 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_IBIS_IBISOPS_H
10 #define CIRCT_DIALECT_IBIS_IBISOPS_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 ibis {
32 class ContainerOp;
33 class ThisOp;
34 
35 // Symbol name for the ibis operator library to be used during scheduling.
36 static constexpr const char *kIbisOperatorLibName = "ibis_operator_library";
37 
38 namespace detail {
39 // Verify that `op` conforms to the ScopeOpInterface.
40 LogicalResult verifyScopeOpInterface(Operation *op);
41 
42 // Returns the %this value of an ibis scope-defining operation. Implemented
43 // here to hide the dependence on `ibis.this`, which is not defined before the
44 // interface definition.
46 
47 } // namespace detail
48 } // namespace ibis
49 } // namespace circt
50 
51 #include "circt/Dialect/Ibis/IbisInterfaces.h.inc"
52 
53 #define GET_OP_CLASSES
54 #include "circt/Dialect/Ibis/Ibis.h.inc"
55 
56 #endif // CIRCT_DIALECT_IBIS_IBISOPS_H
LogicalResult verifyScopeOpInterface(Operation *op)
Definition: IbisOps.cpp:100
mlir::FailureOr< mlir::TypedValue< ScopeRefType > > getThisFromScope(Operation *op)
Definition: IbisOps.cpp:88
static constexpr const char * kIbisOperatorLibName
Definition: IbisOps.h:36
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21