LLVM  9.0.0svn
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;
28  StringRef getTypeName(TypeIndex Index) override;
29  bool contains(TypeIndex Index) override;
30  uint32_t size() override;
31  uint32_t capacity() override;
32 
33 private:
34  BumpPtrAllocator Allocator;
35  StringSaver NameStorage;
36  std::vector<StringRef> Names;
38 };
39 }
40 }
41 
42 #endif
This class represents lattice values for constants.
Definition: AllocatorList.h:23
A 32-bit type reference.
Definition: TypeIndex.h:95
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
Definition: APInt.h:32
bool contains(TypeIndex Index) override
TypeTableCollection(ArrayRef< ArrayRef< uint8_t >> Records)
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition: Allocator.h:140
Optional< TypeIndex > getFirst() override
StringRef getTypeName(TypeIndex Index) override
Optional< TypeIndex > getNext(TypeIndex Prev) override
CVType getType(TypeIndex Index) override
Saves strings in the provided stable storage and returns a StringRef with a stable character pointer...
Definition: StringSaver.h:21
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:48