CIRCT  19.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
MooreTypes.h File Reference
#include "circt/Support/LLVM.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/Types.h"
#include <variant>
#include "circt/Dialect/Moore/MooreTypes.h.inc"
Include dependency graph for MooreTypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  circt::moore::Range
 The [a:b] part in a vector/array type such as logic [a:b]. More...
 
struct  circt::moore::SimpleBitVectorType
 A simple bit vector type. More...
 
class  circt::moore::SVType
 Base class for all SystemVerilog types in the Moore dialect. More...
 
class  circt::moore::UnpackedType
 An unpacked SystemVerilog type. More...
 
class  circt::moore::PackedType
 A packed SystemVerilog type. More...
 
class  circt::moore::VoidType
 The void type. More...
 
class  circt::moore::StringType
 The string type. More...
 
class  circt::moore::ChandleType
 The chandle type. More...
 
class  circt::moore::EventType
 The event type. More...
 
class  circt::moore::IntType
 An integer vector or atom type. More...
 
class  circt::moore::RealType
 A real type. More...
 
class  circt::moore::IndirectTypeBase< BaseTy >
 Common base class for name and type reference indirections. More...
 
class  circt::moore::NamedTypeBase< ConcreteTy, BaseTy >
 A named type. More...
 
class  circt::moore::RefTypeBase< ConcreteTy, BaseTy >
 A type reference. More...
 
class  circt::moore::PackedIndirectType
 A packed type indirection. See IndirectTypeBase for details. More...
 
class  circt::moore::UnpackedIndirectType
 An unpacked type indirection. See IndirectTypeBase for details. More...
 
class  circt::moore::PackedNamedType
 A packed named type. See NamedTypeBase for details. More...
 
class  circt::moore::UnpackedNamedType
 An unpacked named type. See NamedTypeBase for details. More...
 
class  circt::moore::PackedRefType
 A packed named type. See NamedTypeBase for details. More...
 
class  circt::moore::UnpackedRefType
 An unpacked named type. See NamedTypeBase for details. More...
 
class  circt::moore::PackedDim
 A packed dimension. More...
 
class  circt::moore::PackedUnsizedDim
 A packed unsized dimension, like []. More...
 
class  circt::moore::PackedRangeDim
 A packed range dimension, like [a:b]. More...
 
class  circt::moore::UnpackedDim
 An unpacked dimension. More...
 
class  circt::moore::UnpackedUnsizedDim
 An unpacked unsized dimension, like []. More...
 
class  circt::moore::UnpackedArrayDim
 An unpacked array dimension, like [a]. More...
 
class  circt::moore::UnpackedRangeDim
 An unpacked range dimension, like [a:b]. More...
 
class  circt::moore::UnpackedAssocDim
 An unpacked associative dimension, like [T] or [*]. More...
 
class  circt::moore::UnpackedQueueDim
 An unpacked queue dimension with optional bound, like [$] or [$:a]. More...
 
class  circt::moore::EnumType
 An enum type. More...
 
struct  circt::moore::StructMember
 A member of a struct. More...
 
struct  circt::moore::Struct
 A struct. More...
 
class  circt::moore::PackedStructType
 A packed struct. More...
 
class  circt::moore::UnpackedStructType
 An unpacked struct. More...
 
struct  llvm::DenseMapInfo< circt::moore::Range >
 

Namespaces

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

Macros

#define GET_TYPEDEF_CLASSES
 

Enumerations

enum class  circt::moore::Domain { circt::moore::TwoValued , circt::moore::FourValued }
 The number of values each bit of a type can assume. More...
 
enum class  circt::moore::Sign { circt::moore::Unsigned , circt::moore::Signed }
 Whether a type is signed or unsigned. More...
 
enum class  circt::moore::RangeDir { circt::moore::Up , circt::moore::Down }
 Which side is greater in a range [a:b]. More...
 
enum class  circt::moore::StructKind { circt::moore::Struct , circt::moore::Union , circt::moore::TaggedUnion }
 Whether a struct is a struct, union, or union tagged. More...
 

Functions

StringRef circt::moore::getKeywordFromSign (const Sign &sign)
 Map a Sign to the corresponding keyword. More...
 
std::optional< Signcirct::moore::getSignFromKeyword (StringRef keyword)
 Map the keywords unsigned and signed to the corresponding Sign. More...
 
template<typename Os >
Os & circt::moore::operator<< (Os &os, const Sign &sign)
 
llvm::hash_code circt::moore::hash_value (const Range &x)
 
template<typename Os >
Os & circt::moore::operator<< (Os &os, const Range &range)
 
llvm::hash_code circt::moore::hash_value (const SimpleBitVectorType &x)
 
template<typename Os >
Os & circt::moore::operator<< (Os &os, const SimpleBitVectorType &type)
 
template<typename Ty , std::enable_if_t< std::is_base_of< UnpackedType, Ty >::value, bool > = true>
llvm::raw_ostream & circt::moore::operator<< (llvm::raw_ostream &os, Ty type)
 
UnpackedType circt::moore::detail::getIndirectTypeInner (const TypeStorage *impl)
 
Location circt::moore::detail::getIndirectTypeLoc (const TypeStorage *impl)
 
StringAttr circt::moore::detail::getIndirectTypeName (const TypeStorage *impl)
 
StringRef circt::moore::getMnemonicFromStructKind (StructKind kind)
 Map a StructKind to the corresponding mnemonic. More...
 
std::optional< StructKindcirct::moore::getStructKindFromMnemonic (StringRef mnemonic)
 Map a mnemonic to the corresponding StructKind. More...
 
template<typename Os >
Os & circt::moore::operator<< (Os &os, const StructKind &kind)
 
llvm::hash_code circt::moore::hash_value (const StructMember &x)
 
llvm::raw_ostream & circt::moore::operator<< (llvm::raw_ostream &os, const Struct &strukt)
 

Macro Definition Documentation

◆ GET_TYPEDEF_CLASSES

#define GET_TYPEDEF_CLASSES

Definition at line 1259 of file MooreTypes.h.