LLVM 17.0.0git
Static Public Member Functions | Static Public Attributes | List of all members
llvm::orc::OrcGenericABI Class Reference

Generic ORC ABI support. More...

#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"

Collaboration diagram for llvm::orc::OrcGenericABI:
Collaboration graph
[legend]

Static Public Member Functions

static void writeResolverCode (char *ResolveWorkingMem, JITTargetAddress ResolverTargetAddr, JITTargetAddress ReentryFnAddr, JITTargetAddress ReentryCtxAddr)
 
static void writeTrampolines (char *TrampolineBlockWorkingMem, JITTargetAddress TrampolineBlockTargetAddr, JITTargetAddress ResolverAddr, unsigned NumTrampolines)
 
static void writeIndirectStubsBlock (char *StubsBlockWorkingMem, JITTargetAddress StubsBlockTargetAddress, JITTargetAddress PointersBlockTargetAddress, unsigned NumStubs)
 

Static Public Attributes

static constexpr unsigned PointerSize = sizeof(uintptr_t)
 
static constexpr unsigned TrampolineSize = 1
 
static constexpr unsigned StubSize = 1
 
static constexpr unsigned StubToPointerMaxDisplacement = 1
 
static constexpr unsigned ResolverCodeSize = 1
 

Detailed Description

Generic ORC ABI support.

This class can be substituted as the target architecture support class for ORC templates that require one (e.g. IndirectStubsManagers). It does not support lazy JITing however, and any attempt to use that functionality will result in execution of an llvm_unreachable.

Definition at line 55 of file OrcABISupport.h.

Member Function Documentation

◆ writeIndirectStubsBlock()

static void llvm::orc::OrcGenericABI::writeIndirectStubsBlock ( char StubsBlockWorkingMem,
JITTargetAddress  StubsBlockTargetAddress,
JITTargetAddress  PointersBlockTargetAddress,
unsigned  NumStubs 
)
inlinestatic

Definition at line 79 of file OrcABISupport.h.

References llvm_unreachable.

◆ writeResolverCode()

static void llvm::orc::OrcGenericABI::writeResolverCode ( char ResolveWorkingMem,
JITTargetAddress  ResolverTargetAddr,
JITTargetAddress  ReentryFnAddr,
JITTargetAddress  ReentryCtxAddr 
)
inlinestatic

Definition at line 63 of file OrcABISupport.h.

References llvm_unreachable.

◆ writeTrampolines()

static void llvm::orc::OrcGenericABI::writeTrampolines ( char TrampolineBlockWorkingMem,
JITTargetAddress  TrampolineBlockTargetAddr,
JITTargetAddress  ResolverAddr,
unsigned  NumTrampolines 
)
inlinestatic

Definition at line 71 of file OrcABISupport.h.

References llvm_unreachable.

Member Data Documentation

◆ PointerSize

constexpr unsigned llvm::orc::OrcGenericABI::PointerSize = sizeof(uintptr_t)
staticconstexpr

Definition at line 57 of file OrcABISupport.h.

◆ ResolverCodeSize

constexpr unsigned llvm::orc::OrcGenericABI::ResolverCodeSize = 1
staticconstexpr

Definition at line 61 of file OrcABISupport.h.

◆ StubSize

constexpr unsigned llvm::orc::OrcGenericABI::StubSize = 1
staticconstexpr

Definition at line 59 of file OrcABISupport.h.

◆ StubToPointerMaxDisplacement

constexpr unsigned llvm::orc::OrcGenericABI::StubToPointerMaxDisplacement = 1
staticconstexpr

Definition at line 60 of file OrcABISupport.h.

◆ TrampolineSize

constexpr unsigned llvm::orc::OrcGenericABI::TrampolineSize = 1
staticconstexpr

Definition at line 58 of file OrcABISupport.h.


The documentation for this class was generated from the following file: