LLVM: include/llvm/DebugInfo/MSF/MappedBlockStream.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_DEBUGINFO_MSF_MAPPEDBLOCKSTREAM_H
10#define LLVM_DEBUGINFO_MSF_MAPPEDBLOCKSTREAM_H
11
21#include
22#include
23#include
24
25namespace llvm {
26namespace msf {
27
28
29
30
31
32
33
34
35
36
37
40
41public:
42 static std::unique_ptr
45
46 static std::unique_ptr
49
50 static std::unique_ptr
53
54 static std::unique_ptr
57
61
66
67 uint64_t getLength() override;
68
70
71 void invalidateCache();
72
76
77protected:
80
81private:
82 const MSFStreamLayout &getStreamLayout() const { return StreamLayout; }
84
88
90 const MSFStreamLayout StreamLayout;
92
94
95
96
97
98
99
100
101
104};
105
107public:
108 static std::unique_ptr
111
112 static std::unique_ptr
115
116 static std::unique_ptr
120
121 static std::unique_ptr
124
128
133 uint64_t getLength() override;
134
136
137 Error commit() override;
138
140 return ReadInterface.getStreamLayout();
141 }
142
146
147protected:
152
153private:
156};
157
158}
159}
160
161#endif
This file defines the BumpPtrAllocator interface.
This file defines the DenseMap class.
static const int BlockSize
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
An interface for accessing data in a stream-like format, but which discourages copying.
Lightweight error class with error context and mandatory checking.
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
A BinaryStream which can be read from as well as written to.
Describes the layout of a stream in an MSF layout.
MappedBlockStream represents data stored in an MSF file into chunks of a particular size (called the ...
Definition MappedBlockStream.h:38
static std::unique_ptr< MappedBlockStream > createIndexedStream(const MSFLayout &Layout, BinaryStreamRef MsfData, uint32_t StreamIndex, BumpPtrAllocator &Allocator)
BumpPtrAllocator & getAllocator()
Definition MappedBlockStream.h:69
static std::unique_ptr< MappedBlockStream > createStream(uint32_t BlockSize, const MSFStreamLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
friend class WritableMappedBlockStream
Definition MappedBlockStream.h:39
llvm::endianness getEndian() const override
Definition MappedBlockStream.h:58
uint32_t getStreamLength() const
Definition MappedBlockStream.h:75
uint32_t getNumBlocks() const
Definition MappedBlockStream.h:74
MappedBlockStream(uint32_t BlockSize, const MSFStreamLayout &StreamLayout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
static std::unique_ptr< MappedBlockStream > createDirectoryStream(const MSFLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
uint32_t getBlockSize() const
Definition MappedBlockStream.h:73
static std::unique_ptr< MappedBlockStream > createFpmStream(const MSFLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
static std::unique_ptr< WritableMappedBlockStream > createIndexedStream(const MSFLayout &Layout, WritableBinaryStreamRef MsfData, uint32_t StreamIndex, BumpPtrAllocator &Allocator)
uint32_t getStreamLength() const
Definition MappedBlockStream.h:145
static std::unique_ptr< WritableMappedBlockStream > createStream(uint32_t BlockSize, const MSFStreamLayout &Layout, WritableBinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
WritableMappedBlockStream(uint32_t BlockSize, const MSFStreamLayout &StreamLayout, WritableBinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
static std::unique_ptr< WritableMappedBlockStream > createFpmStream(const MSFLayout &Layout, WritableBinaryStreamRef MsfData, BumpPtrAllocator &Allocator, bool AltFpm=false)
static std::unique_ptr< WritableMappedBlockStream > createDirectoryStream(const MSFLayout &Layout, WritableBinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
uint32_t getBlockSize() const
Definition MappedBlockStream.h:143
const MSFStreamLayout & getStreamLayout() const
Definition MappedBlockStream.h:139
uint32_t getNumBlocks() const
Definition MappedBlockStream.h:144
llvm::endianness getEndian() const override
Definition MappedBlockStream.h:125
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr uintptr_t uintptr_t Data
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.