CIRCT 24.0.0git
Loading...
Searching...
No Matches
HWTypes.h File Reference
#include "circt/Dialect/HW/HWDialect.h"
#include "circt/Dialect/HW/HWTypeInterfaces.h"
#include "mlir/IR/DialectInterface.h"
#include "mlir/Interfaces/MemorySlotInterfaces.h"
#include "circt/Support/FieldInfo.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/AttrTypeSubElements.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Types.h"
#include "circt/Dialect/HW/HWTypes.h.inc"
Include dependency graph for HWTypes.h:

Go to the source code of this file.

Classes

struct  circt::hw::ModulePort
struct  circt::hw::HWModulePortTypeInterface
struct  circt::hw::ProbeTypeDialectInterface
 Interface for dialects to classify their types as valid probe payloads. More...
struct  circt::hw::detail::ModuleTypeStorage
struct  circt::hw::detail::OffsetFieldInfo
 Struct defining a field with an offset. Used in unions. More...
struct  mlir::AttrTypeSubElementHandler< circt::hw::detail::OffsetFieldInfo >
 Expose the field names and types of union types to the generic attribute and type walking and replacement infrastructure. More...
class  circt::hw::TypeVariant< Types >
 Utility type that wraps a type that may be one of several possible Types. More...
class  circt::hw::TypeAliasOr< BaseTy >

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
namespace  circt::hw
namespace  circt::hw::detail
namespace  mlir

Macros

#define GET_TYPEDEF_CLASSES

Typedefs

using circt::hw::detail::FieldInfo = ::circt::FieldInfo
 Struct defining a field. Used in structs.

Functions

bool circt::hw::isValidProbeElementType (mlir::Type type)
 Return true if type is a valid probe payload.
static bool circt::hw::operator== (const ModulePort &a, const ModulePort &b)
static llvm::hash_code circt::hw::hash_value (const ModulePort &port)
ModuleType circt::hw::detail::fnToMod (Operation *op, ArrayRef< Attribute > inputNames, ArrayRef< Attribute > outputNames)
ModuleType circt::hw::detail::fnToMod (FunctionType fn, ArrayRef< Attribute > inputNames, ArrayRef< Attribute > outputNames)
mlir::Type circt::hw::getCanonicalType (mlir::Type type)
 Recursively remove HW type aliases from a type and its subelements.
bool circt::hw::isHWIntegerType (mlir::Type type)
 Return true if the specified type is a value HW Integer type.
bool circt::hw::isHWEnumType (mlir::Type type)
 Return true if the specified type is a HW Enum type.
bool circt::hw::isHWValueType (mlir::Type type)
 Return true if the specified type can be used as an HW value type, that is the set of types that can be composed together to represent synthesized, hardware but not marker types like InOutType or unknown types from other dialects.
int64_t circt::hw::getBitWidth (mlir::Type type)
 Return the hardware bit width of a type.
bool circt::hw::hasHWInOutType (mlir::Type type)
 Return true if the specified type contains known marker types like InOutType.
LogicalResult circt::hw::apIntToAggregateAttr (mlir::Type aggregateType, const APInt &intVal, ArrayAttr &result)
 Convert an APInt value into a nested aggregate attribute matching the given HWAggregateType.
LogicalResult circt::hw::aggregateAttrToAPInt (mlir::Type type, ArrayAttr attr, APInt &result)
 Convert an ArrayAttr into an APInt value matching the given type.
template<typename... BaseTy>
bool circt::hw::type_isa (Type type)
template<typename... BaseTy>
bool circt::hw::type_isa_and_nonnull (Type type)
template<typename BaseTy>
BaseTy circt::hw::type_cast (Type type)
template<typename BaseTy>
BaseTy circt::hw::type_dyn_cast (Type type)

Macro Definition Documentation

◆ GET_TYPEDEF_CLASSES

#define GET_TYPEDEF_CLASSES

Definition at line 153 of file HWTypes.h.