[ORC] Replace SymbolResolvers in the new ORC layers with search orders on VSOs.
authorLang Hames <lhames@gmail.com>
Fri, 20 Jul 2018 18:31:50 +0000 (18:31 +0000)
committerLang Hames <lhames@gmail.com>
Fri, 20 Jul 2018 18:31:50 +0000 (18:31 +0000)
commitfd0c1e71694ef1def33ec6293dbfae1f4c96f39b
tree541008992490aff54ab77d8e67ef8f69293c555a
parenta2e18bba304842cecb8d68bc4199af17067d7ef4
[ORC] Replace SymbolResolvers in the new ORC layers with search orders on VSOs.

A search order is a list of VSOs to be searched linearly to find symbols. Each
VSO now has a search order that will be used when fixing up definitions in that
VSO. Each VSO's search order defaults to just that VSO itself.

This is a first step towards removing symbol resolvers from ORC altogether. In
practice symbol resolvers tended to be used to implement a search order anyway,
sometimes with additional programatic generation of symbols. Now that VSOs
support programmatic generation of definitions via fallback generators, search
orders provide a cleaner way to achieve the desired effect (while removing a lot
of boilerplate).

llvm-svn: 337593
15 files changed:
llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
llvm/include/llvm/ExecutionEngine/Orc/Core.h
llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
llvm/include/llvm/ExecutionEngine/Orc/Legacy.h
llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h
llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
llvm/lib/ExecutionEngine/Orc/Core.cpp
llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
llvm/lib/ExecutionEngine/Orc/Legacy.cpp
llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
llvm/unittests/ExecutionEngine/Orc/LegacyAPIInteropTest.cpp
llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.cpp
llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h