CIRCT
18.0.0git
|
Public Types | |
using | KeyTy = UnpackedType |
Public Member Functions | |
DimStorage (KeyTy key) | |
bool | operator== (const KeyTy &key) const |
LogicalResult | mutate (TypeStorageAllocator &allocator, UnpackedType newResolved, UnpackedType newFullyResolved) |
template<class ConcreteDim , typename... Args> | |
void | finalize (ConcreteDim dim, Args... args) const |
Each dimension type calls this function from its get method. More... | |
Static Public Member Functions | |
static DimStorage * | construct (TypeStorageAllocator &allocator, const KeyTy &key) |
Public Attributes | |
UnpackedType | inner |
UnpackedType | resolved |
UnpackedType | fullyResolved |
Definition at line 643 of file MooreTypes.cpp.
Definition at line 644 of file MooreTypes.cpp.
|
inline |
Definition at line 646 of file MooreTypes.cpp.
Referenced by construct().
|
inlinestatic |
Definition at line 648 of file MooreTypes.cpp.
References DimStorage().
|
inline |
Each dimension type calls this function from its get
method.
The first argument, dim
, is set to the type that was constructed by the call to Base::get
. If that type has just been created, its resolved
and fullyResolved
fields are not yet set. If that is the case, the finalize
method constructs the these resolved types by resolving the inner type appropriately and wrapping it in the dimension type. These wrapped types, which are equivalent to the dim
itself but with the inner type resolved, are passed to DimStorage::mutate
which fills in the resolved
and fullyResolved
fields behind a storage lock in the MLIRContext.
This has been inspired by https://reviews.llvm.org/D84171.
Definition at line 682 of file MooreTypes.cpp.
References assert(), circt::moore::UnpackedType::fullyResolved(), fullyResolved, circt::calyx::direction::get(), inner, circt::moore::UnpackedType::resolved(), and resolved.
|
inline |
Definition at line 654 of file MooreTypes.cpp.
References fullyResolved, and resolved.
|
inline |
Definition at line 647 of file MooreTypes.cpp.
References inner.
UnpackedType circt::moore::detail::DimStorage::fullyResolved |
Definition at line 699 of file MooreTypes.cpp.
Referenced by finalize(), circt::moore::PackedDim::fullyResolved(), circt::moore::UnpackedDim::fullyResolved(), and mutate().
UnpackedType circt::moore::detail::DimStorage::inner |
Definition at line 697 of file MooreTypes.cpp.
Referenced by finalize(), circt::moore::PackedDim::getInner(), circt::moore::UnpackedDim::getInner(), operator==(), and circt::moore::detail::RangeDimStorage::operator==().
UnpackedType circt::moore::detail::DimStorage::resolved |
Definition at line 698 of file MooreTypes.cpp.
Referenced by finalize(), mutate(), circt::moore::PackedDim::resolved(), and circt::moore::UnpackedDim::resolved().