class IRMover

Declaration

class IRMover { /* full declaration omitted */ };

Declared at: llvm/include/llvm/Linker/IRMover.h:26

Member Variables

private llvm::Module& Composite
private llvm::IRMover::IdentifiedStructTypeSet IdentifiedStructTypes
private llvm::IRMover::MDMapT SharedMDs
A Metadata map to use for all calls to \a move().

Method Overview

  • public IRMover(llvm::Module & M)
  • public llvm::Module & getModule()
  • public llvm::Error move(std::unique_ptr<Module> Src, ArrayRef<llvm::GlobalValue *> ValuesToLink, llvm::IRMover::LazyCallback AddLazyFor, bool IsPerformingImport)

Methods

IRMover(llvm::Module& M)

Declared at: llvm/include/llvm/Linker/IRMover.h:63

Parameters

llvm::Module& M

llvm::Module& getModule()

Declared at: llvm/include/llvm/Linker/IRMover.h:81

llvm::Error move(
    std::unique_ptr<Module> Src,
    ArrayRef<llvm::GlobalValue*> ValuesToLink,
    llvm::IRMover::LazyCallback AddLazyFor,
    bool IsPerformingImport)

Description

Move in the provide values in \p ValuesToLink from \p Src. - \p AddLazyFor is a call back that the IRMover will call when a global value is referenced by one of the ValuesToLink (transitively) but was not present in ValuesToLink. The GlobalValue and a ValueAdder callback are passed as an argument, and the callback is expected to be called if the GlobalValue needs to be added to the \p ValuesToLink and linked. Pass nullptr if there's no work to be done in such cases. - \p IsPerformingImport is true when this IR link is to perform ThinLTO function importing from Src.

Declared at: llvm/include/llvm/Linker/IRMover.h:79

Parameters

std::unique_ptr<Module> Src
ArrayRef<llvm::GlobalValue*> ValuesToLink
llvm::IRMover::LazyCallback AddLazyFor
bool IsPerformingImport