10 #ifndef LLVM_DEBUGINFO_CODEVIEW_GLOBALTYPETABLEBUILDER_H 11 #define LLVM_DEBUGINFO_CODEVIEW_GLOBALTYPETABLEBUILDER_H 30 class ContinuationRecordBuilder;
72 template <
typename CreateFunc>
78 uint8_t *Stable = RecordStorage.
Allocate<uint8_t>(RecordSize);
85 return Result.first->second;
100 #endif // LLVM_DEBUGINFO_CODEVIEW_MERGINGTYPETABLEBUILDER_H uint32_t capacity() override
CVType getType(TypeIndex Index) override
Optional< TypeIndex > getFirst() override
This class represents lattice values for constants.
void push_back(const T &Elt)
TypeIndex writeLeafType(T &Record)
Optional< TypeIndex > getNext(TypeIndex Prev) override
bool contains(TypeIndex Index) override
~GlobalTypeTableBuilder()
GlobalTypeTableBuilder(BumpPtrAllocator &Storage)
This file defines the MallocAllocator and BumpPtrAllocator interfaces.
#define LLVM_UNLIKELY(EXPR)
BumpPtrAllocator & getAllocator()
TypeIndex insertRecord(ContinuationRecordBuilder &Builder)
ArrayRef< GloballyHashedType > hashes() const
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
A globally hashed type represents a hash value that is sufficient to uniquely identify a record acros...
Allocate memory in an ever growing pool, as if by bump-pointer.
ArrayRef< uint8_t > serialize(T &Record)
LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS void * Allocate(size_t Size, size_t Alignment)
Allocate space at the specified alignment.
ArrayRef< ArrayRef< uint8_t > > records() const
std::pair< iterator, bool > try_emplace(KeyT &&Key, Ts &&... Args)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
TypeIndex nextTypeIndex() const
StringRef getTypeName(TypeIndex Index) override
TypeIndex insertRecordAs(GloballyHashedType Hash, size_t RecordSize, CreateFunc Create)
StringRef - Represent a constant reference to a string, i.e.
TypeIndex insertRecordBytes(ArrayRef< uint8_t > Data)