LLVM  14.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 
17 namespace llvm {
18 namespace codeview {
19 
21 public:
23 
24  Optional<TypeIndex> getFirst() override;
25  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 
34 private:
35  BumpPtrAllocator Allocator;
36  StringSaver NameStorage;
37  std::vector<StringRef> Names;
39 };
40 }
41 }
42 
43 #endif
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AllocatorList.h:23
llvm::codeview::TypeTableCollection::replaceType
bool replaceType(TypeIndex &Index, CVType Data, bool Stabilize) override
Definition: TypeTableCollection.cpp:62
llvm::codeview::TypeTableCollection::TypeTableCollection
TypeTableCollection(ArrayRef< ArrayRef< uint8_t >> Records)
Definition: TypeTableCollection.cpp:18
llvm::Optional
Definition: APInt.h:33
llvm::Data
@ Data
Definition: SIMachineScheduler.h:55
llvm::codeview::TypeTableCollection::size
uint32_t size() override
Definition: TypeTableCollection.cpp:58
llvm::codeview::TypeTableCollection::contains
bool contains(TypeIndex Index) override
Definition: TypeTableCollection.cpp:54
llvm::codeview::TypeTableCollection::getFirst
Optional< TypeIndex > getFirst() override
Definition: TypeTableCollection.cpp:23
llvm::codeview::TypeCollection
Definition: TypeCollection.h:18
llvm::codeview::TypeTableCollection
Definition: TypeTableCollection.h:20
StringSaver.h
Index
uint32_t Index
Definition: ELFObjHandler.cpp:84
llvm::BumpPtrAllocatorImpl
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition: Allocator.h:67
llvm::StringSaver
Saves strings in the provided stable storage and returns a StringRef with a stable character pointer.
Definition: StringSaver.h:21
llvm::ArrayRef
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: APInt.h:32
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:57
llvm::codeview::CVRecord< TypeLeafKind >
uint32_t
llvm::codeview::TypeTableCollection::getTypeName
StringRef getTypeName(TypeIndex Index) override
Definition: TypeTableCollection.cpp:42
TypeCollection.h
llvm::codeview::TypeTableCollection::capacity
uint32_t capacity() override
Definition: TypeTableCollection.cpp:60
llvm::codeview::TypeTableCollection::getType
CVType getType(TypeIndex Index) override
Definition: TypeTableCollection.cpp:37
llvm::codeview::TypeTableCollection::getNext
Optional< TypeIndex > getNext(TypeIndex Prev) override
Definition: TypeTableCollection.cpp:29
llvm::codeview::TypeIndex
A 32-bit type reference.
Definition: TypeIndex.h:96