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: