[ORC] Add a special 'main' JITDylib that is created on ExecutionSession
authorLang Hames <lhames@gmail.com>
Wed, 12 Sep 2018 21:48:59 +0000 (21:48 +0000)
committerLang Hames <lhames@gmail.com>
Wed, 12 Sep 2018 21:48:59 +0000 (21:48 +0000)
commit13014d3ce336fa30ca480ae4912ab72847910610
tree11c79662b71a68e7a162c9a77a5344d7a24e0122
parent9d0f9ced40627bb2d1566546c2ebe861ff44284c
[ORC] Add a special 'main' JITDylib that is created on ExecutionSession
construction, a new convenience lookup method, and add-to layer methods.

ExecutionSession now creates a special 'main' JITDylib upon construction. All
subsequently created JITDylibs are added to the main JITDylib's search order by
default (controlled by the AddToMainDylibSearchOrder parameter to
ExecutionSession::createDylib). The main JITDylib's search order will be used in
the future to properly handle cross-JITDylib weak symbols, with the first
definition in this search order selected.

This commit also adds a new ExecutionSession::lookup convenience method that
performs a blocking lookup using the main JITDylib's search order, as this will
be a very common operation for clients.

Finally, new convenience overloads of IRLayer and ObjectLayer's add methods are
introduced that add the given program representations to the main dylib, which
is likely to be the common case.

llvm-svn: 342086
llvm/include/llvm/ExecutionEngine/Orc/Core.h
llvm/include/llvm/ExecutionEngine/Orc/Layer.h
llvm/lib/ExecutionEngine/Orc/Core.cpp
llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h