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()

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)

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)

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

llvm::jitlink::Block& B

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)

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

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

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1506

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

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)

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)

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)

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1530

Parameters

llvm::jitlink::Block& NewBlock
llvm::jitlink::Block& ExistingBlock