LLVM 20.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
14
15#include <vector>
16
17namespace llvm {
18namespace codeview {
19
21public:
23
24 std::optional<TypeIndex> getFirst() override;
25 std::optional<TypeIndex> getNext(TypeIndex Prev) override;
26
27 CVType getType(TypeIndex Index) override;
29 bool contains(TypeIndex Index) override;
30 uint32_t size() override;
31 uint32_t capacity() override;
32 bool replaceType(TypeIndex &Index, CVType Data, bool Stabilize) override;
33
34private:
35 BumpPtrAllocator Allocator;
36 StringSaver NameStorage;
37 std::vector<StringRef> Names;
39};
40}
41}
42
43#endif
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: ArrayRef.h:41
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition: Allocator.h:66
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
Saves strings in the provided stable storage and returns a StringRef with a stable character pointer.
Definition: StringSaver.h:21
A 32-bit type reference.
Definition: TypeIndex.h:96
CVType getType(TypeIndex Index) override
bool contains(TypeIndex Index) override
std::optional< TypeIndex > getFirst() override
std::optional< TypeIndex > getNext(TypeIndex Prev) override
bool replaceType(TypeIndex &Index, CVType Data, bool Stabilize) override
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
StringRef getTypeName()
We provide a function which tries to compute the (demangled) name of a type statically.
Definition: TypeName.h:27