CIRCT  18.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/"
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.


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 >


 This file defines an intermediate representation for circuits acting as an abstraction for constraints defined over an SMT's solver context.




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


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::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



Definition at line 396 of file FIRRTLTypes.h.