[ORC] Refactor definition-generation, add a generator for static libraries.
authorLang Hames <lhames@gmail.com>
Tue, 13 Aug 2019 16:05:18 +0000 (16:05 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 13 Aug 2019 16:05:18 +0000 (16:05 +0000)
commit52a34a78d9aff1bb5e66e7c32490229ea177e075
tree15ee224459a7c3aed11d4868e4501946dfdd530c
parent76945821b9cad3baebad5c36ae00ab173f8529c6
[ORC] Refactor definition-generation, add a generator for static libraries.

This patch replaces the JITDylib::DefinitionGenerator typedef with a class of
the same name, and adds support for attaching a sequence of DefinitionGeneration
objects to a JITDylib.

This patch also adds a new definition generator,
StaticLibraryDefinitionGenerator, that can be used to add symbols fom a static
library to a JITDylib. An object from the static library will be added (via
a supplied ObjectLayer reference) whenever a symbol from that object is
referenced.

To enable testing, lli is updated to add support for the --extra-archive option
when running in -jit-kind=orc-lazy mode.

llvm-svn: 368707
llvm/include/llvm/ExecutionEngine/Orc/Core.h
llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
llvm/lib/ExecutionEngine/Orc/Core.cpp
llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
llvm/test/ExecutionEngine/OrcLazy/static-library-support.ll [new file with mode: 0644]
llvm/tools/lli/lli.cpp
llvm/tools/llvm-jitlink/llvm-jitlink.cpp
llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp