36 : RecordStorage(Storage) {}
86 uint8_t *Stable = RecordStorage.
Allocate<uint8_t>(Record.
size());
89 SeenRecords.push_back(Record);
97 assert(!Fragments.empty());
98 for (
auto C : Fragments)
AppendingTypeTableBuilder(BumpPtrAllocator &Storage)
Optional< TypeIndex > getNext(TypeIndex Prev) override
This class represents lattice values for constants.
ArrayRef< ArrayRef< uint8_t > > records() const
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
This file defines the MallocAllocator and BumpPtrAllocator interfaces.
Optional< TypeIndex > getFirst() override
~AppendingTypeTableBuilder()
static const uint32_t FirstNonSimpleIndex
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
uint32_t toArrayIndex() const
static TypeIndex fromArrayIndex(uint32_t Index)
uint32_t capacity() override
The instances of the Type class are immutable: once they are created, they are never changed...
StringRef getTypeName(TypeIndex Index) override
Allocate memory in an ever growing pool, as if by bump-pointer.
size_t size() const
size - Get the array size.
LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS void * Allocate(size_t Size, size_t Alignment)
Allocate space at the specified alignment.
CVType getType(TypeIndex Index) override
TypeIndex insertRecordBytes(ArrayRef< uint8_t > &Record)
TypeIndex insertRecord(ContinuationRecordBuilder &Builder)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
std::vector< CVType > end(TypeIndex Index)
ArrayRef< uint8_t > RecordData
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
TypeIndex nextTypeIndex() const
bool contains(TypeIndex Index) override
StringRef - Represent a constant reference to a string, i.e.