| LLVM 22.0.0git
    | 
Represents an address in the executor process. More...
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
| Classes | |
| class | Tag | 
| Merges a tag into the raw address value: P' = P | (TagValue << TagOffset).  More... | |
| class | Untag | 
| Strips a tag of the given length from the given offset within the pointer: P' = P & ~(((1 << TagLen) -1) << TagOffset)  More... | |
| Public Types | |
| using | rawPtr = llvm::identity | 
| A wrap/unwrap function that leaves pointers unmodified. | |
| template<typename T> | |
| using | defaultWrap = rawPtr | 
| Default wrap function to use on this host. | |
| template<typename T> | |
| using | defaultUnwrap = rawPtr | 
| Default unwrap function to use on this host. | |
| Public Member Functions | |
| ExecutorAddr ()=default | |
| constexpr | ExecutorAddr (uint64_t Addr) | 
| Create an ExecutorAddr from the given value. | |
| template<typename T, typename WrapFn = defaultWrap<std::remove_pointer_t<T>>> | |
| std::enable_if_t< std::is_pointer< T >::value, T > | toPtr (WrapFn &&Wrap=WrapFn()) const | 
| Cast this ExecutorAddr to a pointer of the given type. | |
| template<typename T, typename WrapFn = defaultWrap<T>> | |
| std::enable_if_t< std::is_function< T >::value, T * > | toPtr (WrapFn &&Wrap=WrapFn()) const | 
| Cast this ExecutorAddr to a pointer of the given function type. | |
| uint64_t | getValue () const | 
| void | setValue (uint64_t Addr) | 
| bool | isNull () const | 
| operator bool () const | |
| ExecutorAddr & | operator++ () | 
| ExecutorAddr & | operator-- () | 
| ExecutorAddr | operator++ (int) | 
| ExecutorAddr | operator-- (int) | 
| ExecutorAddr & | operator+= (const ExecutorAddrDiff &Delta) | 
| ExecutorAddr & | operator-= (const ExecutorAddrDiff &Delta) | 
| Static Public Member Functions | |
| template<typename T, typename UnwrapFn = defaultUnwrap<T>> | |
| static ExecutorAddr | fromPtr (T *Ptr, UnwrapFn &&Unwrap=UnwrapFn()) | 
| Create an ExecutorAddr from the given pointer. | |
| Friends | |
| bool | operator== (const ExecutorAddr &LHS, const ExecutorAddr &RHS) | 
| bool | operator!= (const ExecutorAddr &LHS, const ExecutorAddr &RHS) | 
| bool | operator< (const ExecutorAddr &LHS, const ExecutorAddr &RHS) | 
| bool | operator<= (const ExecutorAddr &LHS, const ExecutorAddr &RHS) | 
| bool | operator> (const ExecutorAddr &LHS, const ExecutorAddr &RHS) | 
| bool | operator>= (const ExecutorAddr &LHS, const ExecutorAddr &RHS) | 
Represents an address in the executor process.
Definition at line 34 of file ExecutorAddress.h.
| using llvm::orc::ExecutorAddr::defaultUnwrap = rawPtr | 
Default unwrap function to use on this host.
Definition at line 69 of file ExecutorAddress.h.
| using llvm::orc::ExecutorAddr::defaultWrap = rawPtr | 
Default wrap function to use on this host.
Definition at line 66 of file ExecutorAddress.h.
A wrap/unwrap function that leaves pointers unmodified.
Definition at line 37 of file ExecutorAddress.h.
| 
 | default | 
Referenced by fromPtr(), operator!=, operator++(), operator++(), operator+=(), operator--(), operator--(), operator-=(), operator<, operator<=, operator==, operator>, and operator>=.
| 
 | inlineexplicitconstexpr | 
Create an ExecutorAddr from the given value.
Definition at line 106 of file ExecutorAddress.h.
| 
 | inlinestatic | 
Create an ExecutorAddr from the given pointer.
Warning: This should only be used when JITing in-process.
Definition at line 111 of file ExecutorAddress.h.
References ExecutorAddr(), Ptr, and T.
Referenced by llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::addBootstrapSymbols(), llvm::orc::rt_bootstrap::SimpleExecutorDylibManager::addBootstrapSymbols(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::addBootstrapSymbols(), llvm::orc::UnwindInfoManager::addBootstrapSymbols(), llvm::orc::addDefaultBootstrapValuesForHostProcess(), llvm::orc::Speculator::addSpeculationRuntime(), llvm::orc::rt_bootstrap::addTo(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::LocalIndirectStubsInfo< ORCABI >::create(), llvm::orc::LocalCXXRuntimeOverrides::enable(), llvm::orc::LocalIndirectStubsManager< TargetT >::findPointer(), llvm::orc::LocalIndirectStubsManager< TargetT >::findStub(), llvm::orc::ExecutorSymbolDef::fromPtr(), llvm::orc::ExecutorAddrRange::fromPtrRange(), llvm::orc::ExecutorAddrRange::fromPtrRange(), llvm::orc::rt_bootstrap::SimpleExecutorDylibManager::open(), llvm::orc::InProcessMemoryAccess::readPointersAsync(), llvm::orc::rt_bootstrap::readPointersWrapper(), llvm::orc::InProcessMemoryMapper::reserve(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::reserve(), llvm::orc::DylibSymbolResolver::resolveAsync(), llvm::orc::SelfExecutorProcessControl::SelfExecutorProcessControl(), llvm::orc::setUpInProcessLCTMReentryViaEPCIU(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::shutdown(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::shutdown(), llvm::orc::DynamicLibrarySearchGenerator::tryToGenerate(), and llvm::orc::InProcessMemoryMapper::~InProcessMemoryMapper().
| 
 | inline | 
Definition at line 136 of file ExecutorAddress.h.
Referenced by llvm::jitlink::alignToBlock(), llvm::jitlink::aarch64::applyFixup(), llvm::jitlink::ppc64::applyFixup(), llvm::jitlink::aarch32::applyFixupArm(), llvm::jitlink::aarch32::applyFixupData(), llvm::jitlink::aarch32::applyFixupThumb(), llvm::jitlink::SimpleSegmentAlloc::Create(), llvm::orc::createIRTypedAddress(), LLVMOrcLazyCallThroughManagerRef::fromExecutorSymbolDef(), llvm::DenseMapInfo< orc::ExecutorAddr >::getHashValue(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), llvm::jitlink::x86_64::optimizeGOTAndStubAccesses(), llvm::orc::FDSimpleRemoteEPCTransport::sendMessage(), llvm::orc::shared::SPSSerializationTraits< SPSExecutorAddr, ExecutorAddr >::serialize(), llvm::orc::shared::SPSSerializationTraits< SPSExecutorAddr, ExecutorAddr >::size(), llvm::orc::LocalIndirectStubsManager< TargetT >::updatePointer(), llvm::orc::OrcI386::writeIndirectStubsBlock(), llvm::orc::OrcMips32_Base::writeIndirectStubsBlock(), llvm::orc::OrcMips64::writeIndirectStubsBlock(), llvm::orc::OrcI386::writeResolverCode(), llvm::orc::OrcMips32_Base::writeResolverCode(), llvm::orc::OrcMips64::writeResolverCode(), llvm::orc::OrcI386::writeTrampolines(), llvm::orc::OrcMips32_Base::writeTrampolines(), and llvm::orc::OrcMips64::writeTrampolines().
| 
 | inline | 
Definition at line 138 of file ExecutorAddress.h.
| 
 | inlineexplicit | 
Definition at line 140 of file ExecutorAddress.h.
| 
 | inline | 
Definition at line 166 of file ExecutorAddress.h.
References ExecutorAddr().
| 
 | inline | 
Definition at line 174 of file ExecutorAddress.h.
References ExecutorAddr().
| 
 | inline | 
Definition at line 177 of file ExecutorAddress.h.
References ExecutorAddr().
| 
 | inline | 
Definition at line 170 of file ExecutorAddress.h.
References ExecutorAddr().
| 
 | inline | 
Definition at line 175 of file ExecutorAddress.h.
References ExecutorAddr().
| 
 | inline | 
Definition at line 182 of file ExecutorAddress.h.
References ExecutorAddr().
| 
 | inline | 
Definition at line 137 of file ExecutorAddress.h.
Referenced by llvm::jitlink::JITLinkMemoryManager::FinalizedAlloc::release().
| 
 | inline | 
Cast this ExecutorAddr to a pointer of the given type.
Warning: This should only be used when JITing in-process.
Definition at line 120 of file ExecutorAddress.h.
Referenced by llvm::orc::SelfExecutorProcessControl::callWrapperAsync(), deregisterEHFrameWrapper(), llvm::orc::InProcessMemoryMapper::initialize(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::initialize(), llvm::orc::shared::MethodWrapperHandler< RetT, ClassT, ArgTs >::operator()(), llvm::orc::InProcessMemoryMapper::prepare(), registerEHFrameWrapper(), llvm::orc::SelfExecutorProcessControl::runAsIntFunction(), llvm::orc::rt_bootstrap::runAsIntFunctionWrapper(), llvm::orc::SelfExecutorProcessControl::runAsMain(), llvm::orc::rt_bootstrap::runAsMainWrapper(), llvm::orc::SelfExecutorProcessControl::runAsVoidFunction(), and llvm::orc::rt_bootstrap::runAsVoidFunctionWrapper().
| 
 | inline | 
Cast this ExecutorAddr to a pointer of the given function type.
Warning: This should only be used when JITing in-process.
Definition at line 130 of file ExecutorAddress.h.
| 
 | friend | 
Definition at line 146 of file ExecutorAddress.h.
References ExecutorAddr(), LHS, and RHS.
| 
 | friend | 
Definition at line 150 of file ExecutorAddress.h.
References ExecutorAddr(), LHS, and RHS.
| 
 | friend | 
Definition at line 154 of file ExecutorAddress.h.
References ExecutorAddr(), LHS, and RHS.
| 
 | friend | 
Definition at line 142 of file ExecutorAddress.h.
References ExecutorAddr(), LHS, and RHS.
| 
 | friend | 
Definition at line 158 of file ExecutorAddress.h.
References ExecutorAddr(), LHS, and RHS.
| 
 | friend | 
Definition at line 162 of file ExecutorAddress.h.
References ExecutorAddr(), LHS, and RHS.