class IRMover

Declaration

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

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

Method Overview

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

Methods

IRMover(llvm::Module& M)

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

Parameters

llvm::Module& M

llvm::Module& getModule()

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

llvm::Error move(
    std::unique_ptr<Module> Src,
    ArrayRef<llvm::GlobalValue*> ValuesToLink,
    std::function<void(GlobalValue&, ValueAdder)>
        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. - \p IsPerformingImport is true when this IR link is to perform ThinLTO function importing from Src.

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

Parameters

std::unique_ptr<Module> Src
ArrayRef<llvm::GlobalValue*> ValuesToLink
std::function<void(GlobalValue&, ValueAdder)> AddLazyFor
bool IsPerformingImport