LLVM: llvm::orc::IRMaterializationUnit Class Reference (original) (raw)

IRMaterializationUnit is a convenient base class for MaterializationUnits wrapping LLVM IR. More...

#include "[llvm/ExecutionEngine/Orc/Layer.h](Layer%5F8h%5Fsource.html)"

Public Member Functions
IRMaterializationUnit (ExecutionSession &ES, const IRSymbolMapper::ManglingOptions &MO, ThreadSafeModule TSM)
Create an IRMaterializationLayer.
IRMaterializationUnit (ThreadSafeModule TSM, Interface I, SymbolNameToDefinitionMap SymbolToDefinition)
Create an IRMaterializationLayer from a module, and pre-existing SymbolFlags and SymbolToDefinition maps.
StringRef getName () const override
Return the ModuleIdentifier as the name for this MaterializationUnit.
const ThreadSafeModule & getModule () const
Return a reference to the contained ThreadSafeModule.
Public Member Functions inherited from llvm::orc::MaterializationUnit
MaterializationUnit (Interface I)
virtual ~MaterializationUnit ()=default
const SymbolFlagsMap & getSymbols () const
Return the set of symbols that this source provides.
const SymbolStringPtr & getInitializerSymbol () const
Returns the initialization symbol for this MaterializationUnit (if any).
virtual void materialize (std::unique_ptr< MaterializationResponsibility > R)=0
Implementations of this method should materialize all symbols in the materialzation unit, except for those that have been previously discarded.
void doDiscard (const JITDylib &JD, const SymbolStringPtr &Name)
Called by JITDylibs to notify MaterializationUnits that the given symbol has been overridden.
Protected Attributes
ThreadSafeModule TSM
SymbolNameToDefinitionMap SymbolToDefinition
Protected Attributes inherited from llvm::orc::MaterializationUnit
SymbolFlagsMap SymbolFlags
SymbolStringPtr InitSymbol

IRMaterializationUnit is a convenient base class for MaterializationUnits wrapping LLVM IR.

Represents materialization responsibility for all symbols in the given module. If symbols are overridden by other definitions, then their linkage is changed to available-externally.

Definition at line 32 of file Layer.h.

SymbolNameToDefinitionMap

Create an IRMaterializationLayer.

Scans the module to build the SymbolFlags and SymbolToDefinition maps.

Definition at line 32 of file Layer.cpp.

References assert(), llvm::cast(), llvm::dyn_cast(), llvm::orc::IRSymbolMapper::ManglingOptions::EmulatedTLS, llvm::orc::MaterializationUnit::ExecutionSession, llvm::JITSymbolFlags::fromGlobalValue(), G, llvm::Module::getDataLayout(), llvm::orc::ThreadSafeModule::getModuleUnlocked(), llvm::orc::getStaticInitGVs(), llvm::orc::MaterializationUnit::InitSymbol, llvm::orc::ExecutionSession::intern(), llvm::isa(), llvm::JITSymbolFlags::MaterializationSideEffectsOnly, llvm::orc::MaterializationUnit::MaterializationUnit(), llvm::move(), llvm::Comdat::NoDeduplicate, llvm::orc::MaterializationUnit::SymbolFlags, SymbolToDefinition, TSM, llvm::JITSymbolFlags::Weak, and llvm::orc::ThreadSafeModule::withModuleDo().

Referenced by llvm::orc::BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit(), llvm::orc::PartitioningIRMaterializationUnit::PartitioningIRMaterializationUnit(), and llvm::orc::PartitioningIRMaterializationUnit::PartitioningIRMaterializationUnit().

IRMaterializationUnit() [2/2]

getModule()

getName()

StringRef llvm::orc::IRMaterializationUnit::getName ( ) const overridevirtual

SymbolToDefinition

SymbolNameToDefinitionMap llvm::orc::IRMaterializationUnit::SymbolToDefinition protected

TSM


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