18#include "mlir/IR/DialectImplementation.h"
19#include "mlir/Transforms/InliningUtils.h"
30struct LLHDInlinerInterface :
public mlir::DialectInlinerInterface {
31 using mlir::DialectInlinerInterface::DialectInlinerInterface;
38 bool isLegalToInline(Operation *, Region *,
bool, IRMapping &)
const final {
42 bool isLegalToInline(Region *, Region *src,
bool, IRMapping &)
const final {
52void LLHDDialect::initialize() {
58#include "circt/Dialect/LLHD/IR/LLHD.cpp.inc"
61 addInterfaces<LLHDInlinerInterface>();
63 mlir::DialectRegistry registry;
65 getContext()->appendDialectRegistry(registry);
68Operation *LLHDDialect::materializeConstant(OpBuilder &builder, Attribute value,
69 Type type, Location loc) {
70 if (
auto timeAttr = dyn_cast<TimeAttr>(value))
71 return llhd::ConstantTimeOp::create(builder, loc, type, timeAttr);
73 if (
auto intAttr = dyn_cast<IntegerAttr>(value))
79#include "circt/Dialect/LLHD/IR/LLHDDialect.cpp.inc"
void registerDestructableIntegerExternalModel(mlir::DialectRegistry ®istry)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.