LLVM
8.0.1
|
A materialization unit for symbol aliases. More...
#include "llvm/ExecutionEngine/Orc/Core.h"
Public Member Functions | |
ReExportsMaterializationUnit (JITDylib *SourceJD, bool MatchNonExported, SymbolAliasMap Aliases, VModuleKey K) | |
SourceJD is allowed to be nullptr, in which case the source JITDylib is taken to be whatever JITDylib these definitions are materialized in (and MatchNonExported has no effect). More... | |
StringRef | getName () const override |
Return the name of this materialization unit. More... | |
Public Member Functions inherited from llvm::orc::MaterializationUnit | |
MaterializationUnit (SymbolFlagsMap InitalSymbolFlags, VModuleKey K) | |
virtual | ~MaterializationUnit () |
const SymbolFlagsMap & | getSymbols () const |
Return the set of symbols that this source provides. More... | |
void | doMaterialize (JITDylib &JD) |
Called by materialization dispatchers (see ExecutionSession::DispatchMaterializationFunction) to trigger materialization of this MaterializationUnit. More... | |
void | doDiscard (const JITDylib &JD, const SymbolStringPtr &Name) |
Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden. More... | |
Additional Inherited Members | |
Protected Attributes inherited from llvm::orc::MaterializationUnit | |
SymbolFlagsMap | SymbolFlags |
VModuleKey | K |
A materialization unit for symbol aliases.
Allows existing symbols to be aliased with alternate flags.
llvm::orc::ReExportsMaterializationUnit::ReExportsMaterializationUnit | ( | JITDylib * | SourceJD, |
bool | MatchNonExported, | ||
SymbolAliasMap | Aliases, | ||
VModuleKey | K | ||
) |
SourceJD is allowed to be nullptr, in which case the source JITDylib is taken to be whatever JITDylib these definitions are materialized in (and MatchNonExported has no effect).
This is useful for defining aliases within a JITDylib.
Note: Care must be taken that no sets of aliases form a cycle, as such a cycle will result in a deadlock when any symbol in the cycle is resolved.
|
overridevirtual |
Return the name of this materialization unit.
Useful for debugging output.
Implements llvm::orc::MaterializationUnit.
Definition at line 538 of file Core.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::orc::MaterializationResponsibility::delegate(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::orc::JITDylib::getExecutionSession(), llvm::orc::MaterializationResponsibility::getRequestedSymbols(), llvm::orc::MaterializationResponsibility::getTargetJITDylib(), I, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), Name, llvm::orc::reexports(), llvm::orc::MaterializationResponsibility::replace(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), and llvm::orc::symbolAliases().