class BlockAddressMap
Declaration
class BlockAddressMap { /* full declaration omitted */ };
Description
Enables easy lookup of blocks by addresses.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1437
Member Variables
- private llvm::jitlink::BlockAddressMap::AddrToBlockMap AddrToBlock
Method Overview
- public BlockAddressMap()
- public template <typename PredFn = decltype(includeAllBlocks)>llvm::Error addBlock(llvm::jitlink::Block & B, PredFn Pred = includeAllBlocks)
- public void addBlockWithoutChecking(llvm::jitlink::Block & B)
- public template <typename BlockPtrRange, typename PredFn = decltype(includeAllBlocks)>llvm::Error addBlocks(BlockPtrRange && Blocks, PredFn Pred = includeAllBlocks)
- public template <typename BlockPtrRange>void addBlocksWithoutChecking(BlockPtrRange && Blocks)
- public llvm::jitlink::BlockAddressMap::const_iterator begin() const
- public llvm::jitlink::BlockAddressMap::const_iterator end() const
- public llvm::jitlink::Block * getBlockAt(orc::ExecutorAddr Addr) const
- public llvm::jitlink::Block * getBlockCovering(orc::ExecutorAddr Addr) const
- public static bool includeAllBlocks(const llvm::jitlink::Block & B)
- public static bool includeNonNull(const llvm::jitlink::Block & B)
- private llvm::Error overlapError(llvm::jitlink::Block & NewBlock, llvm::jitlink::Block & ExistingBlock)
Methods
¶BlockAddressMap()
BlockAddressMap()
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1448
¶template <
typename PredFn = decltype(includeAllBlocks)>
llvm::Error addBlock(
llvm::jitlink::Block& B,
PredFn Pred = includeAllBlocks)
template <
typename PredFn = decltype(includeAllBlocks)>
llvm::Error addBlock(
llvm::jitlink::Block& B,
PredFn Pred = includeAllBlocks)
Description
Add a block to the map. Returns an error if the block overlaps with any existing block.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1453
Templates
- PredFn = decltype(includeAllBlocks)
Parameters
- llvm::jitlink::Block& B
- PredFn Pred = includeAllBlocks
¶void addBlockWithoutChecking(
llvm::jitlink::Block& B)
void addBlockWithoutChecking(
llvm::jitlink::Block& B)
Description
Add a block to the map without checking for overlap with existing blocks. The client is responsible for ensuring that the block added does not overlap with any existing block.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1481
Parameters
¶template <
typename BlockPtrRange,
typename PredFn = decltype(includeAllBlocks)>
llvm::Error addBlocks(
BlockPtrRange&& Blocks,
PredFn Pred = includeAllBlocks)
template <
typename BlockPtrRange,
typename PredFn = decltype(includeAllBlocks)>
llvm::Error addBlocks(
BlockPtrRange&& Blocks,
PredFn Pred = includeAllBlocks)
Description
Add a range of blocks to the map. Returns an error if any block in the range overlaps with any other block in the range, or with any existing block in the map.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1488
Templates
- BlockPtrRange
- PredFn = decltype(includeAllBlocks)
Parameters
- BlockPtrRange&& Blocks
- PredFn Pred = includeAllBlocks
¶template <typename BlockPtrRange>
void addBlocksWithoutChecking(
BlockPtrRange&& Blocks)
template <typename BlockPtrRange>
void addBlocksWithoutChecking(
BlockPtrRange&& Blocks)
Description
Add a range of blocks to the map without checking for overlap with existing blocks. The client is responsible for ensuring that the block added does not overlap with any existing block.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1499
Templates
- BlockPtrRange
Parameters
- BlockPtrRange&& Blocks
¶llvm::jitlink::BlockAddressMap::const_iterator
begin() const
llvm::jitlink::BlockAddressMap::const_iterator
begin() const
Description
Iterates over (Address, Block*) pairs in ascending order of address.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1505
¶llvm::jitlink::BlockAddressMap::const_iterator
end() const
llvm::jitlink::BlockAddressMap::const_iterator
end() const
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1506
¶llvm::jitlink::Block* getBlockAt(
orc::ExecutorAddr Addr) const
llvm::jitlink::Block* getBlockAt(
orc::ExecutorAddr Addr) const
Description
Returns the block starting at the given address, or nullptr if no such block exists.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1510
Parameters
- orc::ExecutorAddr Addr
¶llvm::jitlink::Block* getBlockCovering(
orc::ExecutorAddr Addr) const
llvm::jitlink::Block* getBlockCovering(
orc::ExecutorAddr Addr) const
Description
Returns the block covering the given address, or nullptr if no such block exists.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1519
Parameters
- orc::ExecutorAddr Addr
¶static bool includeAllBlocks(
const llvm::jitlink::Block& B)
static bool includeAllBlocks(
const llvm::jitlink::Block& B)
Description
A block predicate that always adds all blocks.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1443
Parameters
- const llvm::jitlink::Block& B
¶static bool includeNonNull(
const llvm::jitlink::Block& B)
static bool includeNonNull(
const llvm::jitlink::Block& B)
Description
A block predicate that always includes blocks with non-null addresses.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1446
Parameters
- const llvm::jitlink::Block& B
¶llvm::Error overlapError(
llvm::jitlink::Block& NewBlock,
llvm::jitlink::Block& ExistingBlock)
llvm::Error overlapError(
llvm::jitlink::Block& NewBlock,
llvm::jitlink::Block& ExistingBlock)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1530
Parameters
- llvm::jitlink::Block& NewBlock
- llvm::jitlink::Block& ExistingBlock