LLVM: llvm::orc::ExecutorAddr Class Reference (original) (raw)
Represents an address in the executor process. More...
#include "[llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h](ExecutorAddress%5F8h%5Fsource.html)"
| 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>> | |
| 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> | |
| 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> | |
| 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.
◆ defaultUnwrap
◆ defaultWrap
◆ rawPtr
A wrap/unwrap function that leaves pointers unmodified.
Definition at line 37 of file ExecutorAddress.h.
| llvm::orc::ExecutorAddr::ExecutorAddr ( ) | default |
|---|
Referenced by fromPtr(), operator!=, operator++(), operator++(), operator+=(), operator--(), operator--(), operator-=(), operator<, operator<=, operator==, operator>, and operator>=.
◆ ExecutorAddr() [2/2]
| llvm::orc::ExecutorAddr::ExecutorAddr ( uint64_t Addr) | inlineexplicitconstexpr |
|---|
◆ fromPtr()
template<typename T, typename UnwrapFn = defaultUnwrap>
| ExecutorAddr llvm::orc::ExecutorAddr::fromPtr ( T * Ptr, UnwrapFn && Unwrap = UnwrapFn() ) | 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(), 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().
◆ getValue()
| uint64_t llvm::orc::ExecutorAddr::getValue ( ) const | inline |
|---|
Definition at line 136 of file ExecutorAddress.h.
Referenced by llvm::jitlink::alignToBlock(), llvm::jitlink::aarch64::applyFixup(), llvm::jitlink::ppc64::applyFixup(), llvm::jitlink::systemz::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().
◆ isNull()
| bool llvm::orc::ExecutorAddr::isNull ( ) const | inline |
|---|
◆ operator bool()
| llvm::orc::ExecutorAddr::operator bool ( ) const | inlineexplicit |
|---|
◆ operator++() [1/2]
| ExecutorAddr & llvm::orc::ExecutorAddr::operator++ ( ) | inline |
|---|
◆ operator++() [2/2]
| ExecutorAddr llvm::orc::ExecutorAddr::operator++ ( int ) | inline |
|---|
◆ operator+=()
◆ operator--() [1/2]
| ExecutorAddr & llvm::orc::ExecutorAddr::operator-- ( ) | inline |
|---|
◆ operator--() [2/2]
| ExecutorAddr llvm::orc::ExecutorAddr::operator-- ( int ) | inline |
|---|
◆ operator-=()
◆ setValue()
| void llvm::orc::ExecutorAddr::setValue ( uint64_t Addr) | inline |
|---|
◆ toPtr() [1/2]
template<typename T, typename WrapFn = defaultWrap<std::remove_pointer_t>>
| std::enable_if_t< std::is_pointer< T >::value, T > llvm::orc::ExecutorAddr::toPtr ( WrapFn && Wrap = WrapFn()) const | 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().
◆ toPtr() [2/2]
template<typename T, typename WrapFn = defaultWrap>
| std::enable_if_t< std::is_function< T >::value, T * > llvm::orc::ExecutorAddr::toPtr ( WrapFn && Wrap = WrapFn()) const | inline |
|---|
◆ operator!=
◆ operator<
◆ operator<=
◆ operator==
◆ operator>
◆ operator>=
The documentation for this class was generated from the following file:
- include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h