This interface provides simple read‐only access to a block of memory, and provides simple methods for reading files and standard input into a memory buffer. In addition to basic access to the characters in the file, this interface guarantees you can read one character past the end of the file, and that this character will read as '0'.

Synopsis

Declared in <llvm/Support/MemoryBuffer.h>

class MemoryBuffer;

Description

The '0' guarantee is needed to support an optimization ‐‐ it's intended to be more efficient for clients which are reading all the data to stop reading when they encounter a '0' than to continually check the file position to see if it has reached the end of the file.

Enums

Name

Description

BufferKind

The kind of memory backing used to support the MemoryBuffer.

Member Functions

Name

Description

MemoryBuffer [constructor] [deleted]

Deleted copy constructor.

~MemoryBuffer [destructor] [virtual]

Virtual destructor for polymorphic MemoryBuffer subclasses.

operator= [deleted]

Deleted copy assignment.

dontNeedIfMmap [virtual]

Advise the kernel that a read‐only mmap buffer is unused soon.

getBuffer

Buffer contents as a StringRef spanning [start, end).]

getBufferEnd

Pointer one past the last byte of the buffer.

getBufferIdentifier [virtual]

Return an identifier for this buffer, typically the filename it was read from.

getBufferKind [virtual]

Return information on the memory mechanism used to support the MemoryBuffer.

getBufferSize

Number of bytes in the buffer (end minus start).

getBufferStart

Pointer to the start of the buffer.

getMemBufferRef

Return a lightweight reference to this buffer's data and identifier.

randomAccessIfMmap [virtual]

Advise the kernel that accesses to this mmap buffer will be random.

willNeedIfMmap [virtual]

Advise the kernel to prefetch this mmap buffer into memory.

Static Member Functions

Name

Description

getFile

Open the specified file as a MemoryBuffer, returning a new MemoryBuffer if successful, otherwise returning null.

getFileAsStream

Read the specified file into a MemoryBuffer until EOF.

getFileOrSTDIN

Open the specified file as a MemoryBuffer, or open stdin if the Filename is "‐".

getFileSlice

Map a subrange of the specified file as a MemoryBuffer.

getMemBuffer

getMemBuffer overloads

getMemBufferCopy

Open the specified memory range as a MemoryBuffer, copying the contents and taking ownership of it.

getOpenFile

Given an already‐open file descriptor, read the file and return a MemoryBuffer.

getOpenFileSlice

Map a slice of an already‐open file into a MemoryBuffer.

getSTDIN

Read all of stdin into a file buffer, and return it.

Protected Member Functions

Name

Description

MemoryBuffer [constructor]

Default‐construct an uninitialized memory buffer.

init

Initialize buffer pointers and whether a null terminator is required.

Non-Member Functions

Name

Description

createBasicBlockSectionsProfileReaderWrapperPass

Create a pass that parses a basic block sections profile from Buf.

unwrap

Convert an LLVMMemoryBufferRef to a MemoryBuffer pointer.

wrap

Convert a MemoryBuffer pointer to an LLVMMemoryBufferRef.

Derived Classes

Name

Description

SmallVectorMemoryBuffer

SmallVector‐backed MemoryBuffer instance.

WritableMemoryBuffer

MemoryBuffer with copy‐on‐write access to a writable backing store.

WriteThroughMemoryBuffer

MemoryBuffer that maps a file writable and can commit changes back.

Created with MrDocs