36 : RecordStorage(Storage) {
37 SeenRecords.reserve(4096);
91 HashedRecords.clear();
110 assert(!Fragments.empty());
111 for (
auto C : Fragments)
uint32_t capacity() override
CVType getType(TypeIndex Index) override
Optional< TypeIndex > getFirst() override
This class represents lattice values for constants.
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
Optional< TypeIndex > getNext(TypeIndex Prev) override
bool contains(TypeIndex Index) override
~GlobalTypeTableBuilder()
GlobalTypeTableBuilder(BumpPtrAllocator &Storage)
This file defines the MallocAllocator and BumpPtrAllocator interfaces.
TypeIndex insertRecord(ContinuationRecordBuilder &Builder)
ArrayRef< GloballyHashedType > hashes() const
static const uint32_t FirstNonSimpleIndex
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...
uint32_t toArrayIndex() const
static TypeIndex fromArrayIndex(uint32_t Index)
The instances of the Type class are immutable: once they are created, they are never changed...
Allocate memory in an ever growing pool, as if by bump-pointer.
size_t size() const
size - Get the array size.
ArrayRef< ArrayRef< uint8_t > > records() const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
static GloballyHashedType hashType(ArrayRef< uint8_t > RecordData, ArrayRef< GloballyHashedType > PreviousTypes, ArrayRef< GloballyHashedType > PreviousIds)
Given a sequence of bytes representing a record, compute a global hash for this record.
std::vector< CVType > end(TypeIndex Index)
ArrayRef< uint8_t > RecordData
TypeIndex nextTypeIndex() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
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)
bool empty() const
empty - Check if the array is empty.