9#ifndef LLVM_DEBUGINFO_MSF_MAPPEDBLOCKSTREAM_H
10#define LLVM_DEBUGINFO_MSF_MAPPEDBLOCKSTREAM_H
42 static std::unique_ptr<MappedBlockStream>
46 static std::unique_ptr<MappedBlockStream>
50 static std::unique_ptr<MappedBlockStream>
54 static std::unique_ptr<MappedBlockStream>
71 void invalidateCache();
90 const MSFStreamLayout StreamLayout;
108 static std::unique_ptr<WritableMappedBlockStream>
112 static std::unique_ptr<WritableMappedBlockStream>
116 static std::unique_ptr<WritableMappedBlockStream>
121 static std::unique_ptr<WritableMappedBlockStream>
137 Error commit()
override;
140 return ReadInterface.getStreamLayout();
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 ...
static std::unique_ptr< MappedBlockStream > createIndexedStream(const MSFLayout &Layout, BinaryStreamRef MsfData, uint32_t StreamIndex, BumpPtrAllocator &Allocator)
BumpPtrAllocator & getAllocator()
static std::unique_ptr< MappedBlockStream > createStream(uint32_t BlockSize, const MSFStreamLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
friend class WritableMappedBlockStream
llvm::endianness getEndian() const override
uint32_t getStreamLength() const
uint32_t getNumBlocks() const
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
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
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
const MSFStreamLayout & getStreamLayout() const
uint32_t getNumBlocks() const
llvm::endianness getEndian() const override
This is an optimization pass for GlobalISel generic memory operations.
BumpPtrAllocatorImpl BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
FunctionAddr VTableAddr uintptr_t uintptr_t Data