My Project
|
This is the implementation of the StorageUniquer class. More...
Classes | |
struct | HashedStorage |
struct | LookupKey |
A lookup key for derived instances of storage objects. More... | |
struct | StorageKeyInfo |
Storage info for derived TypeStorage objects. More... | |
Public Types | |
using | BaseStorage = StorageUniquer::BaseStorage |
using | StorageAllocator = StorageUniquer::StorageAllocator |
using | StorageTypeSet = DenseSet< HashedStorage, StorageKeyInfo > |
Public Member Functions | |
BaseStorage * | getOrCreate (unsigned kind, unsigned hashValue, function_ref< bool(const BaseStorage *)> isEqual, function_ref< BaseStorage *(StorageAllocator &)> ctorFn) |
Get or create an instance of a complex derived type. More... | |
BaseStorage * | getOrCreate (unsigned kind, function_ref< BaseStorage *(StorageAllocator &)> ctorFn) |
Get or create an instance of a simple derived type. More... | |
void | erase (unsigned kind, unsigned hashValue, function_ref< bool(const BaseStorage *)> isEqual, function_ref< void(BaseStorage *)> cleanupFn) |
Erase an instance of a complex derived type. More... | |
BaseStorage * | initializeStorage (unsigned kind, function_ref< BaseStorage *(StorageAllocator &)> ctorFn) |
Utility to create and initialize a storage instance. More... | |
Public Attributes | |
StorageTypeSet | storageTypes |
DenseMap< unsigned, BaseStorage * > | simpleTypes |
StorageUniquer::StorageAllocator | allocator |
llvm::sys::SmartRWMutex< true > | mutex |
This is the implementation of the StorageUniquer class.
|
inline |
Erase an instance of a complex derived type.
|
inline |
Get or create an instance of a complex derived type.
|
inline |
Get or create an instance of a simple derived type.
|
inline |
Utility to create and initialize a storage instance.
StorageUniquer::StorageAllocator mlir::detail::StorageUniquerImpl::allocator |
llvm::sys::SmartRWMutex<true> mlir::detail::StorageUniquerImpl::mutex |
DenseMap<unsigned, BaseStorage *> mlir::detail::StorageUniquerImpl::simpleTypes |
StorageTypeSet mlir::detail::StorageUniquerImpl::storageTypes |