CIRCT  20.0.0git
Classes | Namespaces | Macros | Typedefs | Functions
FIRRTLTypes.h File Reference
#include "circt/Dialect/FIRRTL/FIRRTLAttributes.h"
#include "circt/Dialect/FIRRTL/FIRRTLDialect.h"
#include "circt/Dialect/FIRRTL/FIRRTLTypeInterfaces.h"
#include "circt/Dialect/HW/HWTypeInterfaces.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/Types.h"
#include "llvm/ADT/TypeSwitch.h"
#include "circt/Dialect/FIRRTL/FIRRTLTypes.h.inc"
Include dependency graph for FIRRTLTypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  circt::firrtl::RecursiveTypeProperties
 A collection of bits indicating the recursive properties of a type. More...
 
class  circt::firrtl::FIRRTLType
 
class  circt::firrtl::FIRRTLBaseType
 
class  circt::firrtl::WidthQualifiedTypeTrait< ConcreteType >
 Trait for types which have a width. More...
 
class  circt::firrtl::IntType
 This is the common base class between SIntType and UIntType. More...
 
class  circt::firrtl::PropertyType
 
struct  circt::firrtl::ClassElement
 
struct  llvm::DenseMapInfo< circt::firrtl::FIRRTLType >
 
class  circt::firrtl::ContainAliasableTypes< head, tail >
 A struct to check if there is a type derived from FIRRTLBaseType. More...
 
class  circt::firrtl::ContainAliasableTypes< BaseTy >
 
class  circt::firrtl::FIRRTLTypeSwitch< T, ResultT >
 This class implements the same functionality as TypeSwitch except that it uses firrtl::type_dyn_cast for dynamic cast. More...
 
class  circt::firrtl::FIRRTLTypeSwitch< T, void >
 Specialization of FIRRTLTypeSwitch for void returning callables. More...
 
class  circt::firrtl::BaseTypeAliasOr< BaseTy >
 

Namespaces

 circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 
 circt::firrtl
 
 circt::firrtl::detail
 
 llvm
 

Macros

#define GET_TYPEDEF_CLASSES
 

Typedefs

using circt::firrtl::FIRRTLValue = mlir::TypedValue< FIRRTLType >
 
using circt::firrtl::FIRRTLBaseValue = mlir::TypedValue< FIRRTLBaseType >
 
using circt::firrtl::FIRRTLPropertyValue = mlir::TypedValue< PropertyType >
 

Functions

bool circt::firrtl::isConst (Type type)
 Returns true if this is a 'const' type whose value is guaranteed to be unchanging at circuit execution time. More...
 
bool circt::firrtl::containsConst (Type type)
 Returns true if the type is or contains a 'const' type whose value is guaranteed to be unchanging at circuit execution time. More...
 
bool circt::firrtl::hasZeroBitWidth (FIRRTLType type)
 Return true if the type has zero bit width. More...
 
bool circt::firrtl::areTypesEquivalent (FIRRTLType destType, FIRRTLType srcType, bool destOuterTypeIsConst=false, bool srcOuterTypeIsConst=false, bool requireSameWidths=false)
 Returns whether the two types are equivalent. More...
 
bool circt::firrtl::areTypesWeaklyEquivalent (FIRRTLType destType, FIRRTLType srcType, bool destFlip=false, bool srcFlip=false, bool destOuterTypeIsConst=false, bool srcOuterTypeIsConst=false)
 Returns true if two types are weakly equivalent. More...
 
bool circt::firrtl::areTypesConstCastable (FIRRTLType destType, FIRRTLType srcType, bool srcOuterTypeIsConst=false)
 Returns whether the srcType can be const-casted to the destType. More...
 
bool circt::firrtl::areTypesRefCastable (Type dstType, Type srcType)
 Return true if destination ref type can be cast from source ref type, per FIRRTL spec rules they must be identical or destination has more general versions of the corresponding type in the source. More...
 
bool circt::firrtl::isTypeLarger (FIRRTLBaseType dstType, FIRRTLBaseType srcType)
 Returns true if the destination is at least as wide as a source. More...
 
bool circt::firrtl::areAnonymousTypesEquivalent (FIRRTLBaseType lhs, FIRRTLBaseType rhs)
 Return true if anonymous types of given arguments are equivalent by pointer comparison. More...
 
bool circt::firrtl::areAnonymousTypesEquivalent (mlir::Type lhs, mlir::Type rhs)
 
mlir::Type circt::firrtl::getPassiveType (mlir::Type anyBaseFIRRTLType)
 
bool circt::firrtl::isTypeInOut (mlir::Type type)
 Returns true if the given type has some flipped (aka unaligned) dataflow. More...
 
llvm::hash_code circt::firrtl::hash_value (const ClassElement &element)
 
std::optional< int64_t > circt::firrtl::getBitWidth (FIRRTLBaseType type, bool ignoreFlip=false)
 
ParseResult circt::firrtl::parseNestedType (FIRRTLType &result, AsmParser &parser)
 Parse a FIRRTLType. More...
 
ParseResult circt::firrtl::parseNestedBaseType (FIRRTLBaseType &result, AsmParser &parser)
 
ParseResult circt::firrtl::parseNestedPropertyType (PropertyType &result, AsmParser &parser)
 
void circt::firrtl::printNestedType (Type type, AsmPrinter &os)
 Print a type defined by this dialect. More...
 
template<typename... BaseTy>
bool circt::firrtl::type_isa (Type type)
 
template<typename... BaseTy>
bool circt::firrtl::type_isa_and_nonnull (Type type)
 
template<typename BaseTy >
BaseTy circt::firrtl::type_cast (Type type)
 
template<typename BaseTy >
BaseTy circt::firrtl::type_dyn_cast (Type type)
 
template<typename BaseTy >
BaseTy circt::firrtl::type_dyn_cast_or_null (Type type)
 

Macro Definition Documentation

◆ GET_TYPEDEF_CLASSES

#define GET_TYPEDEF_CLASSES

Definition at line 401 of file FIRRTLTypes.h.