LLVM: llvm::jitlink::Block Class Reference (original) (raw)
An Addressable with content and edges. More...
#include "[llvm/ExecutionEngine/JITLink/JITLink.h](JITLink%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | EdgeVector = std::vector<Edge> |
| using | edge_iterator = EdgeVector::iterator |
| using | const_edge_iterator = EdgeVector::const_iterator |
| Public Member Functions | |
|---|---|
| Block (const Block &)=delete | |
| Block & | operator= (const Block &)=delete |
| Block (Block &&)=delete | |
| Block & | operator= (Block &&)=delete |
| Section & | getSection () const |
| Return the parent section for this block. | |
| bool | isZeroFill () const |
| Returns true if this is a zero-fill block. | |
| size_t | getSize () const |
| Returns the size of this defined addressable. | |
| void | setZeroFillSize (size_t Size) |
| Turns this block into a zero-fill block of the given size. | |
| orc::ExecutorAddrRange | getRange () const |
| Returns the address range of this defined addressable. | |
| ArrayRef< char > | getContent () const |
| Get the content for this block. Block must not be a zero-fill block. | |
| void | setContent (ArrayRef< char > Content) |
| Set the content for this block. | |
| MutableArrayRef< char > | getMutableContent (LinkGraph &G) |
| Get mutable content for this block. | |
| MutableArrayRef< char > | getAlreadyMutableContent () |
| Get mutable content for this block. | |
| void | setMutableContent (MutableArrayRef< char > MutableContent) |
| Set mutable content for this block. | |
| bool | isContentMutable () const |
| Returns true if this block's content is mutable. | |
| uint64_t | getAlignment () const |
| Get the alignment for this content. | |
| void | setAlignment (uint64_t Alignment) |
| Set the alignment for this content. | |
| uint64_t | getAlignmentOffset () const |
| Get the alignment offset for this content. | |
| void | setAlignmentOffset (uint64_t AlignmentOffset) |
| Set the alignment offset for this content. | |
| void | addEdge (Edge::Kind K, Edge::OffsetT Offset, Symbol &Target, Edge::AddendT Addend) |
| Add an edge to this block. | |
| void | addEdge (const Edge &E) |
| Add an edge by copying an existing one. | |
| iterator_range< edge_iterator > | edges () |
| Return the list of edges attached to this content. | |
| iterator_range< const_edge_iterator > | edges () const |
| Returns the list of edges attached to this content. | |
| auto | edges_at (Edge::OffsetT O) |
| Returns an iterator over all edges at the given offset within the block. | |
| auto | edges_at (Edge::OffsetT O) const |
| Returns an iterator over all edges at the given offset within the block. | |
| size_t | edges_size () const |
| Return the size of the edges list. | |
| bool | edges_empty () const |
| Returns true if the list of edges is empty. | |
| edge_iterator | removeEdge (edge_iterator I) |
| Remove the edge pointed to by the given iterator. | |
| orc::ExecutorAddr | getFixupAddress (const Edge &E) const |
| Returns the address of the fixup for the given edge, which is equal to this block's address plus the edge's offset. | |
| Public Member Functions inherited from llvm::jitlink::Addressable | |
| Addressable (const Addressable &)=delete | |
| Addressable & | operator= (const Addressable &)=default |
| Addressable (Addressable &&)=delete | |
| Addressable & | operator= (Addressable &&)=default |
| orc::ExecutorAddr | getAddress () const |
| void | setAddress (orc::ExecutorAddr Address) |
| bool | isDefined () const |
| Returns true if this is a defined addressable, in which case you can downcast this to a Block. | |
| bool | isAbsolute () const |
| Additional Inherited Members | |
|---|---|
| Protected Member Functions inherited from llvm::jitlink::Addressable | |
| Addressable (orc::ExecutorAddr Address, bool IsDefined) | |
| Addressable (orc::ExecutorAddr Address) | |
| Protected Attributes inherited from llvm::jitlink::Addressable | |
| uint64_t | ContentMutable: 1 |
| uint64_t | P2Align: 5 |
| uint64_t | AlignmentOffset: 56 |
An Addressable with content and edges.
Definition at line 159 of file JITLink.h.
◆ const_edge_iterator
using llvm::jitlink::Block::const_edge_iterator = EdgeVector::const_iterator
◆ edge_iterator
using llvm::jitlink::Block::edge_iterator = EdgeVector::iterator
◆ EdgeVector
◆ Block() [1/2]
| llvm::jitlink::Block::Block ( const Block & ) | delete |
|---|
◆ Block() [2/2]
| llvm::jitlink::Block::Block ( Block && ) | delete |
|---|
◆ addEdge() [1/2]
| void llvm::jitlink::Block::addEdge ( const Edge & E) | inline |
|---|
Add an edge by copying an existing one.
This is typically used when moving edges between blocks.
Definition at line 328 of file JITLink.h.
References E().
◆ addEdge() [2/2]
| void llvm::jitlink::Block::addEdge ( Edge::Kind K, Edge::OffsetT Offset, Symbol & Target, Edge::AddendT Addend ) | inline |
|---|
◆ edges() [1/2]
◆ edges() [2/2]
◆ edges_at() [1/2]
| auto llvm::jitlink::Block::edges_at ( Edge::OffsetT O) | inline |
|---|
◆ edges_at() [2/2]
| auto llvm::jitlink::Block::edges_at ( Edge::OffsetT O) const | inline |
|---|
◆ edges_empty()
| bool llvm::jitlink::Block::edges_empty ( ) const | inline |
|---|
Returns true if the list of edges is empty.
Definition at line 356 of file JITLink.h.
◆ edges_size()
| size_t llvm::jitlink::Block::edges_size ( ) const | inline |
|---|
Return the size of the edges list.
Definition at line 353 of file JITLink.h.
◆ getAlignment()
| uint64_t llvm::jitlink::Block::getAlignment ( ) const | inline |
|---|
◆ getAlignmentOffset()
| uint64_t llvm::jitlink::Block::getAlignmentOffset ( ) const | inline |
|---|
◆ getAlreadyMutableContent()
◆ getContent()
| ArrayRef< char > llvm::jitlink::Block::getContent ( ) const | inline |
|---|
◆ getFixupAddress()
◆ getMutableContent()
◆ getRange()
◆ getSection()
| Section & llvm::jitlink::Block::getSection ( ) const | inline |
|---|
◆ getSize()
| size_t llvm::jitlink::Block::getSize ( ) const | inline |
|---|
◆ isContentMutable()
| bool llvm::jitlink::Block::isContentMutable ( ) const | inline |
|---|
Returns true if this block's content is mutable.
This is primarily useful for asserting that a block is already in a mutable state prior to modifying the content. E.g. when applying fixups we expect the block to already be mutable as it should have been copied to working memory.
Definition at line 297 of file JITLink.h.
References llvm::jitlink::Addressable::ContentMutable.
◆ isZeroFill()
| bool llvm::jitlink::Block::isZeroFill ( ) const | inline |
|---|
◆ operator=() [1/2]
| Block & llvm::jitlink::Block::operator= ( Block && ) | delete |
|---|
◆ operator=() [2/2]
◆ removeEdge()
| edge_iterator llvm::jitlink::Block::removeEdge ( edge_iterator I) | inline |
|---|
◆ setAlignment()
| void llvm::jitlink::Block::setAlignment ( uint64_t Alignment) | inline |
|---|
◆ setAlignmentOffset()
| void llvm::jitlink::Block::setAlignmentOffset ( uint64_t AlignmentOffset) | inline |
|---|
◆ setContent()
| void llvm::jitlink::Block::setContent ( ArrayRef< char > Content) | inline |
|---|
◆ setMutableContent()
◆ setZeroFillSize()
| void llvm::jitlink::Block::setZeroFillSize ( size_t Size) | inline |
|---|
Turns this block into a zero-fill block of the given size.
Definition at line 236 of file JITLink.h.
◆ LinkGraph
The documentation for this class was generated from the following file:
- include/llvm/ExecutionEngine/JITLink/JITLink.h