11 #include "mlir/IR/Builders.h"
12 #include "mlir/IR/OpImplementation.h"
13 #include "mlir/IR/PatternMatch.h"
14 #include "mlir/IR/SymbolTable.h"
15 #include "mlir/Interfaces/FunctionImplementation.h"
16 #include "mlir/Interfaces/SideEffectInterfaces.h"
18 using namespace circt;
22 #define GET_OP_CLASSES
23 #include "circt/Dialect/LTL/LTL.cpp.inc"
31 SmallVectorImpl<Type> &results) {
32 if (llvm::any_of(operands, [](
auto operand) {
33 return isa<PropertyType>(operand.getType());
45 ValueRange operands, DictionaryAttr attributes,
46 OpaqueProperties properties, RegionRange regions,
47 SmallVectorImpl<Type> &inferredReturnTypes) {
53 ValueRange operands, DictionaryAttr attributes,
54 OpaqueProperties properties, RegionRange regions,
55 SmallVectorImpl<Type> &inferredReturnTypes) {
65 ValueRange operands, DictionaryAttr attributes,
66 OpaqueProperties properties, RegionRange regions,
67 SmallVectorImpl<Type> &inferredReturnTypes) {
68 if (isa<PropertyType>(operands[0].getType())) {
static LogicalResult inferAndLikeReturnTypes(MLIRContext *context, ValueRange operands, SmallVectorImpl< Type > &results)
Direction get(bool isOutput)
Returns an output direction if isOutput is true, otherwise returns an input direction.
LogicalResult inferReturnTypes(MLIRContext *context, std::optional< Location > loc, ValueRange operands, DictionaryAttr attrs, mlir::OpaqueProperties properties, mlir::RegionRange regions, SmallVectorImpl< Type > &results, llvm::function_ref< FIRRTLType(ValueRange, ArrayRef< NamedAttribute >, std::optional< Location >)> callback)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.