LLVM 22.0.0git
TypeTableCollection.h
Go to the documentation of this file.
1//===- TypeTableCollection.h ---------------------------------- *- C++ --*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPETABLECOLLECTION_H
10#define LLVM_DEBUGINFO_CODEVIEW_TYPETABLECOLLECTION_H
11
15
16#include <vector>
17
18namespace llvm {
19namespace codeview {
20
22public:
24
25 std::optional<TypeIndex> getFirst() override;
26 std::optional<TypeIndex> getNext(TypeIndex Prev) override;
27
28 CVType getType(TypeIndex Index) override;
29 StringRef getTypeName(TypeIndex Index) override;
30 bool contains(TypeIndex Index) override;
31 uint32_t size() override;
32 uint32_t capacity() override;
33 bool replaceType(TypeIndex &Index, CVType Data, bool Stabilize) override;
34
35private:
36 BumpPtrAllocator Allocator;
37 StringSaver NameStorage;
38 std::vector<StringRef> Names;
40};
41}
42}
43
44#endif
#define LLVM_ABI
Definition Compiler.h:213
static std::string getTypeName(OverloadKind Kind, Type *Ty)
static bool contains(SmallPtrSetImpl< ConstantExpr * > &Cache, ConstantExpr *Expr, Constant *C)
Definition Value.cpp:480
static SymbolRef::Type getType(const Symbol *Sym)
Definition TapiFile.cpp:39
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition ArrayRef.h:41
StringRef - Represent a constant reference to a string, i.e.
Definition StringRef.h:55
Saves strings in the provided stable storage and returns a StringRef with a stable character pointer.
Definition StringSaver.h:22
A 32-bit type reference.
Definition TypeIndex.h:97
TypeTableCollection(ArrayRef< ArrayRef< uint8_t > > Records)
std::optional< TypeIndex > getFirst() override
std::optional< TypeIndex > getNext(TypeIndex Prev) override
bool replaceType(TypeIndex &Index, CVType Data, bool Stabilize) override
CVRecord< TypeLeafKind > CVType
Definition CVRecord.h:64
This is an optimization pass for GlobalISel generic memory operations.
BumpPtrAllocatorImpl BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
Definition Allocator.h:383
FunctionAddr VTableAddr uintptr_t uintptr_t Data
Definition InstrProf.h:189