LLVM  7.0.0svn
llvm::orc::SymbolSource Class Referenceabstract

Represents a source of symbol definitions which may be materialized (turned into data / code through some materialization process) or discarded (if the definition is overridden by a stronger one). More...

#include "llvm/ExecutionEngine/Orc/Core.h"

## Public Member Functions

virtual ~SymbolSource ()

virtual Error materialize (VSO &V, SymbolNameSet Symbols)=0
Implementations of this method should materialize the given symbols (plus any additional symbols required) by adding a Materializer to the ExecutionSession's MaterializationQueue. More...

virtual void discard (VSO &V, SymbolStringPtr Name)=0
Implementations of this method should discard the given symbol from the source (e.g. More...

## Detailed Description

Represents a source of symbol definitions which may be materialized (turned into data / code through some materialization process) or discarded (if the definition is overridden by a stronger one).

SymbolSources are used when providing lazy definitions of symbols to VSOs. The VSO will call materialize when the address of a symbol is requested via the lookup method. The VSO will call discard if a stronger definition is added or already present.

Definition at line 168 of file Core.h.

## ◆ ~SymbolSource()

 virtual llvm::orc::SymbolSource::~SymbolSource ( )
inlinevirtual

Definition at line 170 of file Core.h.

## Member Function Documentation

 virtual void llvm::orc::SymbolSource::discard ( VSO & V, SymbolStringPtr Name )
pure virtual

Implementations of this method should discard the given symbol from the source (e.g.

if the source is an LLVM IR Module and the symbol is a function, delete the function body or mark it available externally).

## ◆ materialize()

 virtual Error llvm::orc::SymbolSource::materialize ( VSO & V, SymbolNameSet Symbols )
pure virtual

Implementations of this method should materialize the given symbols (plus any additional symbols required) by adding a Materializer to the ExecutionSession's MaterializationQueue.

The documentation for this class was generated from the following files:
• include/llvm/ExecutionEngine/Orc/Core.h
• lib/ExecutionEngine/Orc/Core.cpp