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 OuterContainerOp;
33 class InnerContainerOp;
34 class ThisOp;
35 
36 // Symbol name for the ibis operator library to be used during scheduling.
37 static constexpr const char *kIbisOperatorLibName = "ibis_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 ibis scope-defining operation. Implemented
44 // here to hide the dependence on `ibis.this`, which is not defined before the
45 // interface definition.
47 
48 } // namespace detail
49 } // namespace ibis
50 } // namespace circt
51 
52 #include "circt/Dialect/Ibis/IbisInterfaces.h.inc"
53 
54 #define GET_OP_CLASSES
55 #include "circt/Dialect/Ibis/Ibis.h.inc"
56 
57 #endif // CIRCT_DIALECT_IBIS_IBISOPS_H
LogicalResult verifyScopeOpInterface(Operation *op)
Definition: IbisOps.cpp:112
mlir::FailureOr< mlir::TypedValue< ScopeRefType > > getThisFromScope(Operation *op)
Definition: IbisOps.cpp:100
static constexpr const char * kIbisOperatorLibName
Definition: IbisOps.h:37
This file defines an intermediate representation for circuits acting as an abstraction for constraint...
Definition: DebugAnalysis.h:21