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