CIRCT 23.0.0git
Loading...
Searching...
No Matches
LLHDOps.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
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_LLHD_LLHDOPS_H
10#define CIRCT_DIALECT_LLHD_LLHDOPS_H
11
14#include "circt/Dialect/LLHD/LLHDEnums.h.inc"
16#include "circt/Support/LLVM.h"
17#include "mlir/IR/BuiltinTypes.h"
18#include "mlir/Interfaces/CallInterfaces.h"
19#include "mlir/Interfaces/ControlFlowInterfaces.h"
20#include "mlir/Interfaces/FunctionInterfaces.h"
21#include "mlir/Interfaces/InferTypeOpInterface.h"
22#include "mlir/Interfaces/MemorySlotInterfaces.h"
23#include "mlir/Interfaces/SideEffectInterfaces.h"
24
25namespace mlir {
26class DialectRegistry;
27} // namespace mlir
28
29namespace circt {
30namespace llhd {
31
32unsigned getLLHDTypeWidth(Type type);
33Type getLLHDElementType(Type type);
34
35/// Signals that an operations regions are procedural.
36template <typename ConcreteType>
38 : public mlir::OpTrait::TraitBase<ConcreteType, ProceduralRegion> {
39 static LogicalResult verifyTrait(Operation *op) {
40 return mlir::OpTrait::impl::verifyNRegions(op, 1);
41 }
42};
43
44void registerDestructableIntegerExternalModel(mlir::DialectRegistry &registry);
45
46} // namespace llhd
47} // namespace circt
48
49/// Retrieve the class declarations generated by TableGen
50#define GET_OP_CLASSES
51#include "circt/Dialect/LLHD/LLHD.h.inc"
52
53#endif // CIRCT_DIALECT_LLHD_LLHDOPS_H
Signals that an operations regions are procedural.
Definition LLHDOps.h:38
static LogicalResult verifyTrait(Operation *op)
Definition LLHDOps.h:39
unsigned getLLHDTypeWidth(Type type)
Definition LLHDOps.cpp:29
Type getLLHDElementType(Type type)
Definition LLHDOps.cpp:39
void registerDestructableIntegerExternalModel(mlir::DialectRegistry &registry)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.