[llvm] r344572 - [ORC] Rename ORC layers to make the "new" ORC layers the default.

via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 15 19:03:55 PDT 2018


Hi Lang,

Your change broke the PS4 linux bot, can you take a look?

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/38161

FAILED: tools/clang/examples/clang-interpreter/CMakeFiles/clang-interpreter.dir/main.cpp.o 
/usr/bin/clang++  -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/examples/clang-interpreter -I/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter -I/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/include -Itools/clang/include -Iinclude -I/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/include -std=c++11 -Wdocumentation -Wno-documentation-deprecated-sync -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3    -UNDEBUG     -fno-exceptions -fno-rtti -MD -MT tools/clang/examples/clang-interpreter/CMakeFiles/clang-interpreter.dir/main.cpp.o -MF tools/clang/examples/clang-interpreter/CMakeFiles/clang-interpreter.dir/main.cpp.o.d -o tools/clang/examples/clang-interpreter/CMakeFiles/clang-interpreter.dir/main.cpp.o -c /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:58:17: error: expected member name or ';' after declaration specifiers
  IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
  ~~~~~~~~~~~~~~^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:65:30: error: use of undeclared identifier 'CompileLayer'
              if (auto Sym = CompileLayer.findSymbol(Name, false))
                             ^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:64:14: warning: lambda capture 'this' is not used [-Wunused-lambda-capture]
            [this](const std::string &Name) -> JITSymbol {
             ^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:78:56: error: no member named 'Resources' in 'llvm::orc::RTDyldObjectLinkingLayer'
                      return RTDyldObjectLinkingLayer::Resources{
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:79:77: error: expected ';' after expression
                          std::make_shared<SectionMemoryManager>(), Resolver};
                                                                            ^
                                                                            ;
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:79:69: warning: expression result unused [-Wunused-value]
                          std::make_shared<SectionMemoryManager>(), Resolver};
                                                                    ^~~~~~~~
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:76:9: error: no matching constructor for initialization of 'llvm::orc::RTDyldObjectLinkingLayer'
        ObjectLayer(ES,
        ^           ~~~
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:54:3: note: candidate constructor not viable: no known conversion from '(lambda at /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:77:21)' to 'llvm::orc::RTDyldObjectLinkingLayer::GetMemoryManagerFunction' (aka 'function<unique_ptr<RuntimeDyld::MemoryManager> (unsigned long)>') for 2nd argument
  RTDyldObjectLinkingLayer(
  ^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:39:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class RTDyldObjectLinkingLayer : public ObjectLayer {
      ^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:81:9: error: member initializer 'CompileLayer' does not name a non-static data member or base class
        CompileLayer(ObjectLayer, SimpleCompiler(*TM)) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:90:14: error: use of undeclared identifier 'CompileLayer'
    cantFail(CompileLayer.addModule(K, std::move(M)));
             ^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:98:12: error: use of undeclared identifier 'CompileLayer'
    return CompileLayer.findSymbol(MangledNameStream.str(), true);
           ^
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/tools/clang/examples/clang-interpreter/main.cpp:106:14: error: use of undeclared identifier 'CompileLayer'
    cantFail(CompileLayer.removeModule(K));
             ^
2 warnings and 9 errors generated.

Douglas Yung

> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On
> Behalf Of Lang Hames via llvm-commits
> Sent: Monday, October 15, 2018 15:56
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r344572 - [ORC] Rename ORC layers to make the "new" ORC
> layers the default.
> 
> Author: lhames
> Date: Mon Oct 15 15:56:10 2018
> New Revision: 344572
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=344572&view=rev
> Log:
> [ORC] Rename ORC layers to make the "new" ORC layers the default.
> 
> This commit adds a 'Legacy' prefix to old ORC layers and utilities, and
> removes
> the '2' suffix from the new ORC layers. If you wish to continue using
> the old
> ORC layers you will need to add a 'Legacy' prefix to your classes. If
> you were
> already using the new ORC layers you will need to drop the '2' suffix.
> 
> The legacy layers will remain in-tree until the new layers reach
> feature
> parity with them. This will involve adding support for removing code
> from the
> new layers, and ensuring that performance is comperable.
> 
> Added:
> 
> llvm/trunk/unittests/ExecutionEngine/Orc/LegacyCompileOnDemandLayerTest
> .cpp
>       - copied, changed from r344569,
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
> 
> llvm/trunk/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayer
> Test.cpp
>       - copied, changed from r344569,
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp
> Removed:
> 
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
> 
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.
> cpp
> Modified:
> 
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.
> h
> 
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.
> h
> 
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.
> h
> 
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.
> h
> 
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.
> h
>     llvm/trunk/examples/Kaleidoscope/include/KaleidoscopeJIT.h
>     llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
>     llvm/trunk/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
>     llvm/trunk/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
>     llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
>     llvm/trunk/include/llvm/ExecutionEngine/Orc/LLJIT.h
>     llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
> 
> llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
>     llvm/trunk/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
>     llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
>     llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
>     llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
>     llvm/trunk/tools/lli/lli.cpp
>     llvm/trunk/unittests/ExecutionEngine/Orc/CMakeLists.txt
> 
> llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
> 
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp
> 
> Modified:
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.
> h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter1/Kaleidos
> copeJIT.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.
> h (original)
> +++
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.
> h Mon Oct 15 15:56:10 2018
> @@ -42,8 +42,8 @@ private:
>    std::shared_ptr<SymbolResolver> Resolver;
>    std::unique_ptr<TargetMachine> TM;
>    const DataLayout DL;
> -  RTDyldObjectLinkingLayer ObjectLayer;
> -  IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
> +  LegacyRTDyldObjectLinkingLayer ObjectLayer;
> +  LegacyIRCompileLayer<decltype(ObjectLayer), SimpleCompiler>
> CompileLayer;
> 
>  public:
>    KaleidoscopeJIT()
> @@ -63,7 +63,7 @@ public:
>          TM(EngineBuilder().selectTarget()), DL(TM-
> >createDataLayout()),
>          ObjectLayer(ES,
>                      [this](VModuleKey) {
> -                      return RTDyldObjectLinkingLayer::Resources{
> +                      return
> LegacyRTDyldObjectLinkingLayer::Resources{
>                            std::make_shared<SectionMemoryManager>(),
> Resolver};
>                      }),
>          CompileLayer(ObjectLayer, SimpleCompiler(*TM)) {
> 
> Modified:
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.
> h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter2/Kaleidos
> copeJIT.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.
> h (original)
> +++
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.
> h Mon Oct 15 15:56:10 2018
> @@ -47,13 +47,13 @@ private:
>    std::shared_ptr<SymbolResolver> Resolver;
>    std::unique_ptr<TargetMachine> TM;
>    const DataLayout DL;
> -  RTDyldObjectLinkingLayer ObjectLayer;
> -  IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
> +  LegacyRTDyldObjectLinkingLayer ObjectLayer;
> +  LegacyIRCompileLayer<decltype(ObjectLayer), SimpleCompiler>
> CompileLayer;
> 
>    using OptimizeFunction =
>        std::function<std::unique_ptr<Module>(std::unique_ptr<Module>)>;
> 
> -  IRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> +  LegacyIRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> 
>  public:
>    KaleidoscopeJIT()
> @@ -73,7 +73,7 @@ public:
>          TM(EngineBuilder().selectTarget()), DL(TM-
> >createDataLayout()),
>          ObjectLayer(ES,
>                      [this](VModuleKey) {
> -                      return RTDyldObjectLinkingLayer::Resources{
> +                      return
> LegacyRTDyldObjectLinkingLayer::Resources{
>                            std::make_shared<SectionMemoryManager>(),
> Resolver};
>                      }),
>          CompileLayer(ObjectLayer, SimpleCompiler(*TM)),
> 
> Modified:
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.
> h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter3/Kaleidos
> copeJIT.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.
> h (original)
> +++
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.
> h Mon Oct 15 15:56:10 2018
> @@ -51,23 +51,23 @@ private:
>    std::map<VModuleKey, std::shared_ptr<SymbolResolver>> Resolvers;
>    std::unique_ptr<TargetMachine> TM;
>    const DataLayout DL;
> -  RTDyldObjectLinkingLayer ObjectLayer;
> -  IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
> +  LegacyRTDyldObjectLinkingLayer ObjectLayer;
> +  LegacyIRCompileLayer<decltype(ObjectLayer), SimpleCompiler>
> CompileLayer;
> 
>    using OptimizeFunction =
>        std::function<std::unique_ptr<Module>(std::unique_ptr<Module>)>;
> 
> -  IRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> +  LegacyIRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> 
>    std::unique_ptr<JITCompileCallbackManager> CompileCallbackManager;
> -  CompileOnDemandLayer<decltype(OptimizeLayer)> CODLayer;
> +  LegacyCompileOnDemandLayer<decltype(OptimizeLayer)> CODLayer;
> 
>  public:
>    KaleidoscopeJIT()
>        : TM(EngineBuilder().selectTarget()), DL(TM-
> >createDataLayout()),
>          ObjectLayer(ES,
>                      [this](VModuleKey K) {
> -                      return RTDyldObjectLinkingLayer::Resources{
> +                      return
> LegacyRTDyldObjectLinkingLayer::Resources{
>                            std::make_shared<SectionMemoryManager>(),
>                            Resolvers[K]};
>                      }),
> 
> Modified:
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.
> h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter4/Kaleidos
> copeJIT.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.
> h (original)
> +++
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.
> h Mon Oct 15 15:56:10 2018
> @@ -77,13 +77,13 @@ private:
>    std::shared_ptr<SymbolResolver> Resolver;
>    std::unique_ptr<TargetMachine> TM;
>    const DataLayout DL;
> -  RTDyldObjectLinkingLayer ObjectLayer;
> -  IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
> +  LegacyRTDyldObjectLinkingLayer ObjectLayer;
> +  LegacyIRCompileLayer<decltype(ObjectLayer), SimpleCompiler>
> CompileLayer;
> 
>    using OptimizeFunction =
>        std::function<std::unique_ptr<Module>(std::unique_ptr<Module>)>;
> 
> -  IRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> +  LegacyIRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> 
>    std::unique_ptr<JITCompileCallbackManager> CompileCallbackMgr;
>    std::unique_ptr<IndirectStubsManager> IndirectStubsMgr;
> @@ -108,7 +108,7 @@ public:
>          TM(EngineBuilder().selectTarget()), DL(TM-
> >createDataLayout()),
>          ObjectLayer(ES,
>                      [this](VModuleKey K) {
> -                      return RTDyldObjectLinkingLayer::Resources{
> +                      return
> LegacyRTDyldObjectLinkingLayer::Resources{
>                            std::make_shared<SectionMemoryManager>(),
> Resolver};
>                      }),
>          CompileLayer(ObjectLayer, SimpleCompiler(*TM)),
> 
> Modified:
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.
> h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter5/Kaleidos
> copeJIT.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.
> h (original)
> +++
> llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.
> h Mon Oct 15 15:56:10 2018
> @@ -82,13 +82,13 @@ private:
>    std::shared_ptr<SymbolResolver> Resolver;
>    std::unique_ptr<TargetMachine> TM;
>    const DataLayout DL;
> -  RTDyldObjectLinkingLayer ObjectLayer;
> -  IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
> +  LegacyRTDyldObjectLinkingLayer ObjectLayer;
> +  LegacyIRCompileLayer<decltype(ObjectLayer), SimpleCompiler>
> CompileLayer;
> 
>    using OptimizeFunction =
>        std::function<std::unique_ptr<Module>(std::unique_ptr<Module>)>;
> 
> -  IRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> +  LegacyIRTransformLayer<decltype(CompileLayer), OptimizeFunction>
> OptimizeLayer;
> 
>    JITCompileCallbackManager *CompileCallbackMgr;
>    std::unique_ptr<IndirectStubsManager> IndirectStubsMgr;
> @@ -116,7 +116,7 @@ public:
>          DL(TM->createDataLayout()),
>          ObjectLayer(ES,
>                      [this](VModuleKey K) {
> -                      return RTDyldObjectLinkingLayer::Resources{
> +                      return
> LegacyRTDyldObjectLinkingLayer::Resources{
>                            cantFail(this-
> >Remote.createRemoteMemoryManager()),
>                            Resolver};
>                      }),
> 
> Modified: llvm/trunk/examples/Kaleidoscope/include/KaleidoscopeJIT.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/examples/Kaleidoscope/include/KaleidoscopeJIT.h?rev=
> 344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/examples/Kaleidoscope/include/KaleidoscopeJIT.h
> (original)
> +++ llvm/trunk/examples/Kaleidoscope/include/KaleidoscopeJIT.h Mon Oct
> 15 15:56:10 2018
> @@ -40,8 +40,8 @@ namespace orc {
> 
>  class KaleidoscopeJIT {
>  public:
> -  using ObjLayerT = RTDyldObjectLinkingLayer;
> -  using CompileLayerT = IRCompileLayer<ObjLayerT, SimpleCompiler>;
> +  using ObjLayerT = LegacyRTDyldObjectLinkingLayer;
> +  using CompileLayerT = LegacyIRCompileLayer<ObjLayerT,
> SimpleCompiler>;
> 
>    KaleidoscopeJIT()
>        : Resolver(createLegacyLookupResolver(
> 
> Modified:
> llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLaye
> r.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
> (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
> Mon Oct 15 15:56:10 2018
> @@ -62,7 +62,7 @@ namespace orc {
> 
>  class ExtractingIRMaterializationUnit;
> 
> -class CompileOnDemandLayer2 : public IRLayer {
> +class CompileOnDemandLayer : public IRLayer {
>    friend class PartitioningIRMaterializationUnit;
> 
>  public:
> @@ -84,8 +84,8 @@ public:
>    /// symbol in them is requested.
>    static Optional<GlobalValueSet> compileWholeModule(GlobalValueSet
> Requested);
> 
> -  /// Construct a CompileOnDemandLayer2.
> -  CompileOnDemandLayer2(ExecutionSession &ES, IRLayer &BaseLayer,
> +  /// Construct a CompileOnDemandLayer.
> +  CompileOnDemandLayer(ExecutionSession &ES, IRLayer &BaseLayer,
>                          LazyCallThroughManager &LCTMgr,
>                          IndirectStubsManagerBuilder
> BuildIndirectStubsManager);
> 
> @@ -142,7 +142,7 @@ private:
>  template <typename BaseLayerT,
>            typename CompileCallbackMgrT = JITCompileCallbackManager,
>            typename IndirectStubsMgrT = IndirectStubsManager>
> -class CompileOnDemandLayer {
> +class LegacyCompileOnDemandLayer {
>  private:
>    template <typename MaterializerFtor>
>    class LambdaMaterializer final : public ValueMaterializer {
> @@ -266,13 +266,13 @@ public:
>        std::function<void(VModuleKey K, std::shared_ptr<SymbolResolver>
> R)>;
> 
>    /// Construct a compile-on-demand layer instance.
> -  CompileOnDemandLayer(ExecutionSession &ES, BaseLayerT &BaseLayer,
> -                       SymbolResolverGetter GetSymbolResolver,
> -                       SymbolResolverSetter SetSymbolResolver,
> -                       PartitioningFtor Partition,
> -                       CompileCallbackMgrT &CallbackMgr,
> -                       IndirectStubsManagerBuilderT
> CreateIndirectStubsManager,
> -                       bool CloneStubsIntoPartitions = true)
> +  LegacyCompileOnDemandLayer(ExecutionSession &ES, BaseLayerT
> &BaseLayer,
> +                             SymbolResolverGetter GetSymbolResolver,
> +                             SymbolResolverSetter SetSymbolResolver,
> +                             PartitioningFtor Partition,
> +                             CompileCallbackMgrT &CallbackMgr,
> +                             IndirectStubsManagerBuilderT
> CreateIndirectStubsManager,
> +                             bool CloneStubsIntoPartitions = true)
>        : ES(ES), BaseLayer(BaseLayer),
>          GetSymbolResolver(std::move(GetSymbolResolver)),
>          SetSymbolResolver(std::move(SetSymbolResolver)),
> @@ -280,7 +280,7 @@ public:
> 
> CreateIndirectStubsManager(std::move(CreateIndirectStubsManager)),
>          CloneStubsIntoPartitions(CloneStubsIntoPartitions) {}
> 
> -  ~CompileOnDemandLayer() {
> +  ~LegacyCompileOnDemandLayer() {
>      // FIXME: Report error on log.
>      while (!LogicalDylibs.empty())
>        consumeError(removeModule(LogicalDylibs.begin()->first));
> 
> Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h?re
> v=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
> (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h Mon
> Oct 15 15:56:10 2018
> @@ -94,11 +94,11 @@ iterator_range<CtorDtorIterator> getDest
>  /// Convenience class for recording constructor/destructor names for
>  ///        later execution.
>  template <typename JITLayerT>
> -class CtorDtorRunner {
> +class LegacyCtorDtorRunner {
>  public:
>    /// Construct a CtorDtorRunner for the given range using the given
>    ///        name mangling function.
> -  CtorDtorRunner(std::vector<std::string> CtorDtorNames, VModuleKey K)
> +  LegacyCtorDtorRunner(std::vector<std::string> CtorDtorNames,
> VModuleKey K)
>        : CtorDtorNames(std::move(CtorDtorNames)), K(K) {}
> 
>    /// Run the recorded constructors/destructors through the given JIT
> @@ -129,9 +129,9 @@ private:
>    orc::VModuleKey K;
>  };
> 
> -class CtorDtorRunner2 {
> +class CtorDtorRunner {
>  public:
> -  CtorDtorRunner2(JITDylib &JD) : JD(JD) {}
> +  CtorDtorRunner(JITDylib &JD) : JD(JD) {}
>    void add(iterator_range<CtorDtorIterator> CtorDtors);
>    Error run();
> 
> @@ -177,11 +177,11 @@ protected:
>                                 void *DSOHandle);
>  };
> 
> -class LocalCXXRuntimeOverrides : public LocalCXXRuntimeOverridesBase {
> +class LegacyLocalCXXRuntimeOverrides : public
> LocalCXXRuntimeOverridesBase {
>  public:
>    /// Create a runtime-overrides class.
>    template <typename MangleFtorT>
> -  LocalCXXRuntimeOverrides(const MangleFtorT &Mangle) {
> +  LegacyLocalCXXRuntimeOverrides(const MangleFtorT &Mangle) {
>      addOverride(Mangle("__dso_handle"),
> toTargetAddress(&DSOHandleOverride));
>      addOverride(Mangle("__cxa_atexit"),
> toTargetAddress(&CXAAtExitOverride));
>    }
> @@ -202,7 +202,7 @@ private:
>    StringMap<JITTargetAddress> CXXRuntimeOverrides;
>  };
> 
> -class LocalCXXRuntimeOverrides2 : public LocalCXXRuntimeOverridesBase
> {
> +class LocalCXXRuntimeOverrides : public LocalCXXRuntimeOverridesBase {
>  public:
>    Error enable(JITDylib &JD, MangleAndInterner &Mangler);
>  };
> 
> Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h?re
> v=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
> (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h Mon
> Oct 15 15:56:10 2018
> @@ -28,7 +28,7 @@ class Module;
> 
>  namespace orc {
> 
> -class IRCompileLayer2 : public IRLayer {
> +class IRCompileLayer : public IRLayer {
>  public:
>    using CompileFunction =
>        std::function<Expected<std::unique_ptr<MemoryBuffer>>(Module
> &)>;
> @@ -36,8 +36,8 @@ public:
>    using NotifyCompiledFunction =
>        std::function<void(VModuleKey K, ThreadSafeModule TSM)>;
> 
> -  IRCompileLayer2(ExecutionSession &ES, ObjectLayer &BaseLayer,
> -                  CompileFunction Compile);
> +  IRCompileLayer(ExecutionSession &ES, ObjectLayer &BaseLayer,
> +                 CompileFunction Compile);
> 
>    void setNotifyCompiled(NotifyCompiledFunction NotifyCompiled);
> 
> @@ -57,15 +57,15 @@ private:
>  /// object file and adds this module file to the layer below, which
> must
>  /// implement the object layer concept.
>  template <typename BaseLayerT, typename CompileFtor>
> -class IRCompileLayer {
> +class LegacyIRCompileLayer {
>  public:
>    /// Callback type for notifications when modules are compiled.
>    using NotifyCompiledCallback =
>        std::function<void(VModuleKey K, std::unique_ptr<Module>)>;
> 
> -  /// Construct an IRCompileLayer with the given BaseLayer, which must
> +  /// Construct an LegacyIRCompileLayer with the given BaseLayer,
> which must
>    ///        implement the ObjectLayer concept.
> -  IRCompileLayer(
> +  LegacyIRCompileLayer(
>        BaseLayerT &BaseLayer, CompileFtor Compile,
>        NotifyCompiledCallback NotifyCompiled =
> NotifyCompiledCallback())
>        : BaseLayer(BaseLayer), Compile(std::move(Compile)),
> 
> Modified:
> llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h?
> rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
> (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h Mon
> Oct 15 15:56:10 2018
> @@ -23,13 +23,13 @@ namespace llvm {
>  class Module;
>  namespace orc {
> 
> -class IRTransformLayer2 : public IRLayer {
> +class IRTransformLayer : public IRLayer {
>  public:
>    using TransformFunction = std::function<Expected<ThreadSafeModule>(
>        ThreadSafeModule, const MaterializationResponsibility &R)>;
> 
> -  IRTransformLayer2(ExecutionSession &ES, IRLayer &BaseLayer,
> -                    TransformFunction Transform = identityTransform);
> +  IRTransformLayer(ExecutionSession &ES, IRLayer &BaseLayer,
> +                   TransformFunction Transform = identityTransform);
> 
>    void setTransform(TransformFunction Transform) {
>      this->Transform = std::move(Transform);
> @@ -54,11 +54,11 @@ private:
>  ///   This layer applies a user supplied transform to each module that
> is added,
>  /// then adds the transformed module to the layer below.
>  template <typename BaseLayerT, typename TransformFtor>
> -class IRTransformLayer {
> +class LegacyIRTransformLayer {
>  public:
> 
> -  /// Construct an IRTransformLayer with the given BaseLayer
> -  IRTransformLayer(BaseLayerT &BaseLayer,
> +  /// Construct an LegacyIRTransformLayer with the given BaseLayer
> +  LegacyIRTransformLayer(BaseLayerT &BaseLayer,
>                     TransformFtor Transform = TransformFtor())
>      : BaseLayer(BaseLayer), Transform(std::move(Transform)) {}
> 
> 
> Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/LLJIT.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/LLJIT.h?rev=344572&
> r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/LLJIT.h (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/LLJIT.h Mon Oct 15
> 15:56:10 2018
> @@ -99,7 +99,7 @@ public:
>    Error runDestructors() { return DtorRunner.run(); }
> 
>    /// Returns a reference to the ObjLinkingLayer
> -  RTDyldObjectLinkingLayer2 &getObjLinkingLayer() { return
> ObjLinkingLayer; }
> +  RTDyldObjectLinkingLayer &getObjLinkingLayer() { return
> ObjLinkingLayer; }
> 
>  protected:
> 
> @@ -125,10 +125,10 @@ protected:
>    DataLayout DL;
>    std::unique_ptr<ThreadPool> CompileThreads;
> 
> -  RTDyldObjectLinkingLayer2 ObjLinkingLayer;
> -  IRCompileLayer2 CompileLayer;
> +  RTDyldObjectLinkingLayer ObjLinkingLayer;
> +  IRCompileLayer CompileLayer;
> 
> -  CtorDtorRunner2 CtorRunner, DtorRunner;
> +  CtorDtorRunner CtorRunner, DtorRunner;
>  };
> 
>  /// An extended version of LLJIT that supports lazy function-at-a-time
> @@ -145,13 +145,13 @@ public:
> 
>    /// Set an IR transform (e.g. pass manager pipeline) to run on each
> function
>    /// when it is compiled.
> -  void setLazyCompileTransform(IRTransformLayer2::TransformFunction
> Transform) {
> +  void setLazyCompileTransform(IRTransformLayer::TransformFunction
> Transform) {
>      TransformLayer.setTransform(std::move(Transform));
>    }
> 
>    /// Sets the partition function.
>    void
> -  setPartitionFunction(CompileOnDemandLayer2::PartitionFunction
> Partition) {
> +  setPartitionFunction(CompileOnDemandLayer::PartitionFunction
> Partition) {
>      CODLayer.setPartitionFunction(std::move(Partition));
>    }
> 
> @@ -180,8 +180,8 @@ private:
>    std::unique_ptr<LazyCallThroughManager> LCTMgr;
>    std::function<std::unique_ptr<IndirectStubsManager>()> ISMBuilder;
> 
> -  IRTransformLayer2 TransformLayer;
> -  CompileOnDemandLayer2 CODLayer;
> +  IRTransformLayer TransformLayer;
> +  CompileOnDemandLayer CODLayer;
>  };
> 
>  } // End namespace orc
> 
> Modified:
> llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectTransformLaye
> r.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
> (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
> Mon Oct 15 15:56:10 2018
> @@ -23,14 +23,14 @@
>  namespace llvm {
>  namespace orc {
> 
> -class ObjectTransformLayer2 : public ObjectLayer {
> +class ObjectTransformLayer : public ObjectLayer {
>  public:
>    using TransformFunction =
>        std::function<Expected<std::unique_ptr<MemoryBuffer>>(
>            std::unique_ptr<MemoryBuffer>)>;
> 
> -  ObjectTransformLayer2(ExecutionSession &ES, ObjectLayer &BaseLayer,
> -                        TransformFunction Transform);
> +  ObjectTransformLayer(ExecutionSession &ES, ObjectLayer &BaseLayer,
> +                       TransformFunction Transform);
> 
>    void emit(MaterializationResponsibility R, VModuleKey K,
>              std::unique_ptr<MemoryBuffer> O) override;
> @@ -46,11 +46,11 @@ private:
>  /// immediately applies the user supplied functor to each object, then
> adds
>  /// the set of transformed objects to the layer below.
>  template <typename BaseLayerT, typename TransformFtor>
> -class ObjectTransformLayer {
> +class LegacyObjectTransformLayer {
>  public:
>    /// Construct an ObjectTransformLayer with the given BaseLayer
> -  ObjectTransformLayer(BaseLayerT &BaseLayer,
> -                       TransformFtor Transform = TransformFtor())
> +  LegacyObjectTransformLayer(BaseLayerT &BaseLayer,
> +                             TransformFtor Transform =
> TransformFtor())
>        : BaseLayer(BaseLayer), Transform(std::move(Transform)) {}
> 
>    /// Apply the transform functor to each object in the object set,
> then
> 
> Modified:
> llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinking
> Layer.h?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
> (original)
> +++
> llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
> Mon Oct 15 15:56:10 2018
> @@ -36,7 +36,7 @@
>  namespace llvm {
>  namespace orc {
> 
> -class RTDyldObjectLinkingLayer2 : public ObjectLayer {
> +class RTDyldObjectLinkingLayer : public ObjectLayer {
>  public:
>    /// Functor for receiving object-loaded notifications.
>    using NotifyLoadedFunction =
> @@ -51,7 +51,7 @@ public:
> 
>    /// Construct an ObjectLinkingLayer with the given NotifyLoaded,
>    ///        and NotifyEmitted functors.
> -  RTDyldObjectLinkingLayer2(
> +  RTDyldObjectLinkingLayer(
>        ExecutionSession &ES, GetMemoryManagerFunction GetMemoryManager,
>        NotifyLoadedFunction NotifyLoaded = NotifyLoadedFunction(),
>        NotifyEmittedFunction NotifyEmitted = NotifyEmittedFunction());
> @@ -66,7 +66,7 @@ public:
>    /// the memory manager, rather than just the sections required for
> execution.
>    ///
>    /// This is kludgy, and may be removed in the future.
> -  RTDyldObjectLinkingLayer2 &setProcessAllSections(bool
> ProcessAllSections) {
> +  RTDyldObjectLinkingLayer &setProcessAllSections(bool
> ProcessAllSections) {
>      this->ProcessAllSections = ProcessAllSections;
>      return *this;
>    }
> @@ -79,13 +79,13 @@ public:
>    ///
>    /// FIXME: We should be able to remove this if/when COFF properly
> tracks
>    /// exported symbols.
> -  RTDyldObjectLinkingLayer2 &
> +  RTDyldObjectLinkingLayer &
>    setOverrideObjectFlagsWithResponsibilityFlags(bool
> OverrideObjectFlags) {
>      this->OverrideObjectFlags = OverrideObjectFlags;
>      return *this;
>    }
> 
> -  /// If set, this RTDyldObjectLinkingLayer2 instance will claim
> responsibility
> +  /// If set, this RTDyldObjectLinkingLayer instance will claim
> responsibility
>    /// for any symbols provided by a given object file that were not
> already in
>    /// the MaterializationResponsibility instance. Setting this flag
> allows
>    /// higher-level program representations (e.g. LLVM IR) to be added
> based on
> @@ -96,7 +96,7 @@ public:
>    /// deterministically). If this option is set, clashes for the
> additional
>    /// symbols may not be detected until late, and detection may depend
> on
>    /// the flow of control through JIT'd code. Use with care.
> -  RTDyldObjectLinkingLayer2 &
> +  RTDyldObjectLinkingLayer &
>    setAutoClaimResponsibilityForObjectSymbols(bool
> AutoClaimObjectSymbols) {
>      this->AutoClaimObjectSymbols = AutoClaimObjectSymbols;
>      return *this;
> @@ -121,7 +121,7 @@ private:
>    std::map<VModuleKey, std::shared_ptr<RuntimeDyld::MemoryManager>>
> MemMgrs;
>  };
> 
> -class RTDyldObjectLinkingLayerBase {
> +class LegacyRTDyldObjectLinkingLayerBase {
>  public:
>    using ObjectPtr = std::unique_ptr<MemoryBuffer>;
> 
> @@ -173,10 +173,10 @@ protected:
>  /// object files to be loaded into memory, linked, and the addresses
> of their
>  /// symbols queried. All objects added to this layer can see each
> other's
>  /// symbols.
> -class RTDyldObjectLinkingLayer : public RTDyldObjectLinkingLayerBase {
> +class LegacyRTDyldObjectLinkingLayer : public
> LegacyRTDyldObjectLinkingLayerBase {
>  public:
> 
> -  using RTDyldObjectLinkingLayerBase::ObjectPtr;
> +  using LegacyRTDyldObjectLinkingLayerBase::ObjectPtr;
> 
>    /// Functor for receiving object-loaded notifications.
>    using NotifyLoadedFtor =
> @@ -197,7 +197,7 @@ private:
>    template <typename MemoryManagerPtrT>
>    class ConcreteLinkedObject : public LinkedObject {
>    public:
> -    ConcreteLinkedObject(RTDyldObjectLinkingLayer &Parent, VModuleKey
> K,
> +    ConcreteLinkedObject(LegacyRTDyldObjectLinkingLayer &Parent,
> VModuleKey K,
>                           OwnedObject Obj, MemoryManagerPtrT MemMgr,
>                           std::shared_ptr<SymbolResolver> Resolver,
>                           bool ProcessAllSections)
> @@ -313,7 +313,7 @@ private:
>      };
> 
>      VModuleKey K;
> -    RTDyldObjectLinkingLayer &Parent;
> +    LegacyRTDyldObjectLinkingLayer &Parent;
>      MemoryManagerPtrT MemMgr;
>      OwnedObject ObjForNotify;
>      std::unique_ptr<PreFinalizeContents> PFC;
> @@ -321,7 +321,7 @@ private:
> 
>    template <typename MemoryManagerPtrT>
>    std::unique_ptr<ConcreteLinkedObject<MemoryManagerPtrT>>
> -  createLinkedObject(RTDyldObjectLinkingLayer &Parent, VModuleKey K,
> +  createLinkedObject(LegacyRTDyldObjectLinkingLayer &Parent,
> VModuleKey K,
>                       OwnedObject Obj, MemoryManagerPtrT MemMgr,
>                       std::shared_ptr<SymbolResolver> Resolver,
>                       bool ProcessAllSections) {
> @@ -341,7 +341,7 @@ public:
> 
>    /// Construct an ObjectLinkingLayer with the given NotifyLoaded,
>    ///        and NotifyFinalized functors.
> -  RTDyldObjectLinkingLayer(
> +  LegacyRTDyldObjectLinkingLayer(
>        ExecutionSession &ES, ResourcesGetter GetResources,
>        NotifyLoadedFtor NotifyLoaded = NotifyLoadedFtor(),
>        NotifyFinalizedFtor NotifyFinalized = NotifyFinalizedFtor(),
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp?rev
> =344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
> (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp Mon Oct
> 15 15:56:10 2018
> @@ -68,13 +68,13 @@ namespace orc {
>  class PartitioningIRMaterializationUnit : public IRMaterializationUnit
> {
>  public:
>    PartitioningIRMaterializationUnit(ExecutionSession &ES,
> ThreadSafeModule TSM,
> -                                    CompileOnDemandLayer2 &Parent)
> +                                    CompileOnDemandLayer &Parent)
>        : IRMaterializationUnit(ES, std::move(TSM)), Parent(Parent) {}
> 
>    PartitioningIRMaterializationUnit(
>        ThreadSafeModule TSM, SymbolFlagsMap SymbolFlags,
>        SymbolNameToDefinitionMap SymbolToDefinition,
> -      CompileOnDemandLayer2 &Parent)
> +      CompileOnDemandLayer &Parent)
>        : IRMaterializationUnit(std::move(TSM), std::move(SymbolFlags),
>                                std::move(SymbolToDefinition)),
>          Parent(Parent) {}
> @@ -93,30 +93,30 @@ private:
>    }
> 
>    mutable std::mutex SourceModuleMutex;
> -  CompileOnDemandLayer2 &Parent;
> +  CompileOnDemandLayer &Parent;
>  };
> 
> -Optional<CompileOnDemandLayer2::GlobalValueSet>
> -CompileOnDemandLayer2::compileRequested(GlobalValueSet Requested) {
> +Optional<CompileOnDemandLayer::GlobalValueSet>
> +CompileOnDemandLayer::compileRequested(GlobalValueSet Requested) {
>    return std::move(Requested);
>  }
> 
> -Optional<CompileOnDemandLayer2::GlobalValueSet>
> -CompileOnDemandLayer2::compileWholeModule(GlobalValueSet Requested) {
> +Optional<CompileOnDemandLayer::GlobalValueSet>
> +CompileOnDemandLayer::compileWholeModule(GlobalValueSet Requested) {
>    return None;
>  }
> 
> -CompileOnDemandLayer2::CompileOnDemandLayer2(
> +CompileOnDemandLayer::CompileOnDemandLayer(
>      ExecutionSession &ES, IRLayer &BaseLayer, LazyCallThroughManager
> &LCTMgr,
>      IndirectStubsManagerBuilder BuildIndirectStubsManager)
>      : IRLayer(ES), BaseLayer(BaseLayer), LCTMgr(LCTMgr),
>        BuildIndirectStubsManager(std::move(BuildIndirectStubsManager))
> {}
> 
> -void CompileOnDemandLayer2::setPartitionFunction(PartitionFunction
> Partition) {
> +void CompileOnDemandLayer::setPartitionFunction(PartitionFunction
> Partition) {
>    this->Partition = std::move(Partition);
>  }
> 
> -void CompileOnDemandLayer2::emit(MaterializationResponsibility R,
> VModuleKey K,
> +void CompileOnDemandLayer::emit(MaterializationResponsibility R,
> VModuleKey K,
>                                   ThreadSafeModule TSM) {
>    assert(TSM.getModule() && "Null module");
> 
> @@ -160,8 +160,8 @@ void CompileOnDemandLayer2::emit(Materia
>                            std::move(Callables)));
>  }
> 
> -CompileOnDemandLayer2::PerDylibResources &
> -CompileOnDemandLayer2::getPerDylibResources(JITDylib &TargetD) {
> +CompileOnDemandLayer::PerDylibResources &
> +CompileOnDemandLayer::getPerDylibResources(JITDylib &TargetD) {
>    auto I = DylibResources.find(&TargetD);
>    if (I == DylibResources.end()) {
>      auto &ImplD =
> @@ -176,7 +176,7 @@ CompileOnDemandLayer2::getPerDylibResour
>    return I->second;
>  }
> 
> -void CompileOnDemandLayer2::cleanUpModule(Module &M) {
> +void CompileOnDemandLayer::cleanUpModule(Module &M) {
>    for (auto &F : M.functions()) {
>      if (F.isDeclaration())
>        continue;
> @@ -189,7 +189,7 @@ void CompileOnDemandLayer2::cleanUpModul
>    }
>  }
> 
> -void CompileOnDemandLayer2::expandPartition(GlobalValueSet &Partition)
> {
> +void CompileOnDemandLayer::expandPartition(GlobalValueSet &Partition)
> {
>    // Expands the partition to ensure the following rules hold:
>    // (1) If any alias is in the partition, its aliasee is also in the
> partition.
>    // (2) If any aliasee is in the partition, its aliases are also in
> the
> @@ -221,7 +221,7 @@ void CompileOnDemandLayer2::expandPartit
>      Partition.insert(GV);
>  }
> 
> -void CompileOnDemandLayer2::emitPartition(
> +void CompileOnDemandLayer::emitPartition(
>      MaterializationResponsibility R, ThreadSafeModule TSM,
>      IRMaterializationUnit::SymbolNameToDefinitionMap Defs) {
> 
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/ExecutionUtils.cpp?rev=34457
> 2&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/ExecutionUtils.cpp (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/ExecutionUtils.cpp Mon Oct 15
> 15:56:10 2018
> @@ -87,7 +87,7 @@ iterator_range<CtorDtorIterator> getDest
>                      CtorDtorIterator(DtorsList, true));
>  }
> 
> -void CtorDtorRunner2::add(iterator_range<CtorDtorIterator> CtorDtors)
> {
> +void CtorDtorRunner::add(iterator_range<CtorDtorIterator> CtorDtors) {
>    if (CtorDtors.begin() == CtorDtors.end())
>      return;
> 
> @@ -115,7 +115,7 @@ void CtorDtorRunner2::add(iterator_range
>    }
>  }
> 
> -Error CtorDtorRunner2::run() {
> +Error CtorDtorRunner::run() {
>    using CtorDtorTy = void (*)();
> 
>    SymbolNameSet Names;
> @@ -165,7 +165,7 @@ int LocalCXXRuntimeOverridesBase::CXAAtE
>    return 0;
>  }
> 
> -Error LocalCXXRuntimeOverrides2::enable(JITDylib &JD,
> +Error LocalCXXRuntimeOverrides::enable(JITDylib &JD,
>                                          MangleAndInterner &Mangle) {
>    SymbolMap RuntimeInterposes;
>    RuntimeInterposes[Mangle("__dso_handle")] =
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/IRCompileLayer.cpp?rev=34457
> 2&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/IRCompileLayer.cpp (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/IRCompileLayer.cpp Mon Oct 15
> 15:56:10 2018
> @@ -12,16 +12,16 @@
>  namespace llvm {
>  namespace orc {
> 
> -IRCompileLayer2::IRCompileLayer2(ExecutionSession &ES, ObjectLayer
> &BaseLayer,
> +IRCompileLayer::IRCompileLayer(ExecutionSession &ES, ObjectLayer
> &BaseLayer,
>                                   CompileFunction Compile)
>      : IRLayer(ES), BaseLayer(BaseLayer), Compile(std::move(Compile))
> {}
> 
> -void IRCompileLayer2::setNotifyCompiled(NotifyCompiledFunction
> NotifyCompiled) {
> +void IRCompileLayer::setNotifyCompiled(NotifyCompiledFunction
> NotifyCompiled) {
>    std::lock_guard<std::mutex> Lock(IRLayerMutex);
>    this->NotifyCompiled = std::move(NotifyCompiled);
>  }
> 
> -void IRCompileLayer2::emit(MaterializationResponsibility R, VModuleKey
> K,
> +void IRCompileLayer::emit(MaterializationResponsibility R, VModuleKey
> K,
>                             ThreadSafeModule TSM) {
>    assert(TSM.getModule() && "Module must not be null");
> 
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/IRTransformLayer.cpp?rev=344
> 572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/IRTransformLayer.cpp (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/IRTransformLayer.cpp Mon Oct 15
> 15:56:10 2018
> @@ -13,12 +13,12 @@
>  namespace llvm {
>  namespace orc {
> 
> -IRTransformLayer2::IRTransformLayer2(ExecutionSession &ES,
> +IRTransformLayer::IRTransformLayer(ExecutionSession &ES,
>                                       IRLayer &BaseLayer,
>                                       TransformFunction Transform)
>      : IRLayer(ES), BaseLayer(BaseLayer),
> Transform(std::move(Transform)) {}
> 
> -void IRTransformLayer2::emit(MaterializationResponsibility R,
> VModuleKey K,
> +void IRTransformLayer::emit(MaterializationResponsibility R,
> VModuleKey K,
>                               ThreadSafeModule TSM) {
>    assert(TSM.getModule() && "Module must not be null");
> 
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp?rev=344572&r1=3445
> 71&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp Mon Oct 15 15:56:10
> 2018
> @@ -21,7 +21,7 @@ namespace {
>        : llvm::orc::SimpleCompiler(*TM), TM(std::move(TM)) {}
>    private:
>      // FIXME: shared because std::functions (and thus
> -    // IRCompileLayer2::CompileFunction) are not moveable.
> +    // IRCompileLayer::CompileFunction) are not moveable.
>      std::shared_ptr<llvm::TargetMachine> TM;
>    };
> 
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp?rev
> =344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
> (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp Mon Oct
> 15 15:56:10 2018
> @@ -13,13 +13,13 @@
>  namespace llvm {
>  namespace orc {
> 
> -ObjectTransformLayer2::ObjectTransformLayer2(ExecutionSession &ES,
> -                                             ObjectLayer &BaseLayer,
> -                                             TransformFunction
> Transform)
> +ObjectTransformLayer::ObjectTransformLayer(ExecutionSession &ES,
> +                                            ObjectLayer &BaseLayer,
> +                                            TransformFunction
> Transform)
>      : ObjectLayer(ES), BaseLayer(BaseLayer),
> Transform(std::move(Transform)) {}
> 
> -void ObjectTransformLayer2::emit(MaterializationResponsibility R,
> VModuleKey K,
> -                                 std::unique_ptr<MemoryBuffer> O) {
> +void ObjectTransformLayer::emit(MaterializationResponsibility R,
> VModuleKey K,
> +                                std::unique_ptr<MemoryBuffer> O) {
>    assert(O && "Module must not be null");
> 
>    if (auto TransformedObj = Transform(std::move(O)))
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h?rev=3445
> 72&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h Mon Oct 15
> 15:56:10 2018
> @@ -77,9 +77,9 @@ public:
>    };
> 
>    template <>
> -  class GenericLayerImpl<orc::RTDyldObjectLinkingLayer> : public
> GenericLayer {
> +  class GenericLayerImpl<orc::LegacyRTDyldObjectLinkingLayer> : public
> GenericLayer {
>    private:
> -    using LayerT = orc::RTDyldObjectLinkingLayer;
> +    using LayerT = orc::LegacyRTDyldObjectLinkingLayer;
>    public:
>      GenericLayerImpl(LayerT &Layer) : Layer(Layer) {}
> 
> @@ -107,10 +107,10 @@ class OrcCBindingsStack {
>  public:
> 
>    using CompileCallbackMgr = orc::JITCompileCallbackManager;
> -  using ObjLayerT = orc::RTDyldObjectLinkingLayer;
> -  using CompileLayerT = orc::IRCompileLayer<ObjLayerT,
> orc::SimpleCompiler>;
> +  using ObjLayerT = orc::LegacyRTDyldObjectLinkingLayer;
> +  using CompileLayerT = orc::LegacyIRCompileLayer<ObjLayerT,
> orc::SimpleCompiler>;
>    using CODLayerT =
> -        orc::CompileOnDemandLayer<CompileLayerT, CompileCallbackMgr>;
> +        orc::LegacyCompileOnDemandLayer<CompileLayerT,
> CompileCallbackMgr>;
> 
>    using CallbackManagerBuilder =
>        std::function<std::unique_ptr<CompileCallbackMgr>()>;
> @@ -312,7 +312,7 @@ public:
> 
>      // Run the static constructors, and save the static destructor
> runner for
>      // execution when the JIT is torn down.
> -    orc::CtorDtorRunner<OrcCBindingsStack>
> CtorRunner(std::move(CtorNames), K);
> +    orc::LegacyCtorDtorRunner<OrcCBindingsStack>
> CtorRunner(std::move(CtorNames), K);
>      if (auto Err = CtorRunner.runViaLayer(*this))
>        return std::move(Err);
> 
> @@ -517,8 +517,8 @@ private:
> 
>    std::map<orc::VModuleKey, std::unique_ptr<detail::GenericLayer>>
> KeyLayers;
> 
> -  orc::LocalCXXRuntimeOverrides CXXRuntimeOverrides;
> -  std::vector<orc::CtorDtorRunner<OrcCBindingsStack>>
> IRStaticDestructorRunners;
> +  orc::LegacyLocalCXXRuntimeOverrides CXXRuntimeOverrides;
> +  std::vector<orc::LegacyCtorDtorRunner<OrcCBindingsStack>>
> IRStaticDestructorRunners;
>    std::string ErrMsg;
> 
>    ResolverMap Resolvers;
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp?rev=
> 344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
> (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp Mon Oct
> 15 15:56:10 2018
> @@ -128,7 +128,7 @@ void OrcMCJITReplacement::runStaticConst
>    auto &CtorDtorsMap = isDtors ? UnexecutedDestructors :
> UnexecutedConstructors;
> 
>    for (auto &KV : CtorDtorsMap)
> -    cantFail(CtorDtorRunner<LazyEmitLayerT>(std::move(KV.second),
> KV.first)
> +
> cantFail(LegacyCtorDtorRunner<LazyEmitLayerT>(std::move(KV.second),
> KV.first)
>                   .runViaLayer(LazyEmitLayer));
> 
>    CtorDtorsMap.clear();
> 
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h?rev=34
> 4572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h Mon Oct 15
> 15:56:10 2018
> @@ -461,8 +461,8 @@ private:
>      return MangledName;
>    }
> 
> -  using ObjectLayerT = RTDyldObjectLinkingLayer;
> -  using CompileLayerT = IRCompileLayer<ObjectLayerT,
> orc::SimpleCompiler>;
> +  using ObjectLayerT = LegacyRTDyldObjectLinkingLayer;
> +  using CompileLayerT = LegacyIRCompileLayer<ObjectLayerT,
> orc::SimpleCompiler>;
>    using LazyEmitLayerT = LazyEmittingLayer<CompileLayerT>;
> 
>    ExecutionSession ES;
> 
> Modified:
> llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
> ?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
> (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp Mon
> Oct 15 15:56:10 2018
> @@ -76,14 +76,14 @@ private:
>  namespace llvm {
>  namespace orc {
> 
> -RTDyldObjectLinkingLayer2::RTDyldObjectLinkingLayer2(
> +RTDyldObjectLinkingLayer::RTDyldObjectLinkingLayer(
>      ExecutionSession &ES, GetMemoryManagerFunction GetMemoryManager,
>      NotifyLoadedFunction NotifyLoaded, NotifyEmittedFunction
> NotifyEmitted)
>      : ObjectLayer(ES), GetMemoryManager(GetMemoryManager),
>        NotifyLoaded(std::move(NotifyLoaded)),
>        NotifyEmitted(std::move(NotifyEmitted)) {}
> 
> -void RTDyldObjectLinkingLayer2::emit(MaterializationResponsibility R,
> +void RTDyldObjectLinkingLayer::emit(MaterializationResponsibility R,
>                                       VModuleKey K,
>                                       std::unique_ptr<MemoryBuffer> O)
> {
>    assert(O && "Object must not be null");
> @@ -153,7 +153,7 @@ void RTDyldObjectLinkingLayer2::emit(Mat
>        });
>  }
> 
> -Error RTDyldObjectLinkingLayer2::onObjLoad(
> +Error RTDyldObjectLinkingLayer::onObjLoad(
>      VModuleKey K, MaterializationResponsibility &R, object::ObjectFile
> &Obj,
>      std::unique_ptr<RuntimeDyld::LoadedObjectInfo> LoadedObjInfo,
>      std::map<StringRef, JITEvaluatedSymbol> Resolved,
> @@ -196,7 +196,7 @@ Error RTDyldObjectLinkingLayer2::onObjLo
>    return Error::success();
>  }
> 
> -void RTDyldObjectLinkingLayer2::onObjEmit(VModuleKey K,
> +void RTDyldObjectLinkingLayer::onObjEmit(VModuleKey K,
> 
> MaterializationResponsibility &R,
>                                            Error Err) {
>    if (Err) {
> 
> Modified: llvm/trunk/tools/lli/lli.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/tools/lli/lli.cpp?rev=344572&r1=344571&r2=344572&vie
> w=diff
> =======================================================================
> =======
> --- llvm/trunk/tools/lli/lli.cpp (original)
> +++ llvm/trunk/tools/lli/lli.cpp Mon Oct 15 15:56:10 2018
> @@ -696,7 +696,7 @@ int main(int argc, char **argv, char * c
>    return Result;
>  }
> 
> -static orc::IRTransformLayer2::TransformFunction createDebugDumper() {
> +static orc::IRTransformLayer::TransformFunction createDebugDumper() {
>    switch (OrcDumpKind) {
>    case DumpKind::NoDump:
>      return [](orc::ThreadSafeModule TSM,
> @@ -781,7 +781,7 @@ int runOrcLazyJIT(const char *ProgName)
>    auto J = ExitOnErr(orc::LLLazyJIT::Create(std::move(JTMB), DL,
> LazyJITCompileThreads));
> 
>    if (PerModuleLazy)
> -    J-
> >setPartitionFunction(orc::CompileOnDemandLayer2::compileWholeModule);
> +    J-
> >setPartitionFunction(orc::CompileOnDemandLayer::compileWholeModule);
> 
>    auto Dump = createDebugDumper();
> 
> @@ -797,7 +797,7 @@ int runOrcLazyJIT(const char *ProgName)
> 
> ExitOnErr(orc::DynamicLibrarySearchGenerator::GetForCurrentProcess(DL))
> );
> 
>    orc::MangleAndInterner Mangle(J->getExecutionSession(), DL);
> -  orc::LocalCXXRuntimeOverrides2 CXXRuntimeOverrides;
> +  orc::LocalCXXRuntimeOverrides CXXRuntimeOverrides;
>    ExitOnErr(CXXRuntimeOverrides.enable(J->getMainJITDylib(), Mangle));
> 
>    // Add the main module.
> 
> Modified: llvm/trunk/unittests/ExecutionEngine/Orc/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/CMakeLists.txt?rev=344
> 572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> --- llvm/trunk/unittests/ExecutionEngine/Orc/CMakeLists.txt (original)
> +++ llvm/trunk/unittests/ExecutionEngine/Orc/CMakeLists.txt Mon Oct 15
> 15:56:10 2018
> @@ -10,7 +10,6 @@ set(LLVM_LINK_COMPONENTS
>    )
> 
>  add_llvm_unittest(OrcJITTests
> -  CompileOnDemandLayerTest.cpp
>    CoreAPIsTest.cpp
>    IndirectionUtilsTest.cpp
>    GlobalMappingLayerTest.cpp
> @@ -18,6 +17,8 @@ add_llvm_unittest(OrcJITTests
>    LazyCallThroughAndReexportsTest.cpp
>    LazyEmittingLayerTest.cpp
>    LegacyAPIInteropTest.cpp
> +  LegacyCompileOnDemandLayerTest.cpp
> +  LegacyRTDyldObjectLinkingLayerTest.cpp
>    ObjectTransformLayerTest.cpp
>    OrcCAPITest.cpp
>    OrcTestCommon.cpp
> @@ -25,7 +26,6 @@ add_llvm_unittest(OrcJITTests
>    RemoteObjectLayerTest.cpp
>    RPCUtilsTest.cpp
>    RTDyldObjectLinkingLayerTest.cpp
> -  RTDyldObjectLinkingLayer2Test.cpp
>    SymbolStringPoolTest.cpp
>    ThreadSafeModuleTest.cpp
>    )
> 
> Removed:
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTe
> st.cpp?rev=344571&view=auto
> =======================================================================
> =======
> ---
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
> (original)
> +++
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
> (removed)
> @@ -1,89 +0,0 @@
> -//===----- CompileOnDemandLayerTest.cpp - Unit tests for the COD layer
> ----===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open
> Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===-----------------------------------------------------------------
> -----===//
> -
> -#include "llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h"
> -#include "OrcTestCommon.h"
> -#include "gtest/gtest.h"
> -
> -using namespace llvm;
> -using namespace llvm::orc;
> -
> -namespace {
> -
> -class DummyTrampolinePool : public orc::TrampolinePool {
> -public:
> -  Expected<JITTargetAddress> getTrampoline() {
> -    llvm_unreachable("Unimplemented");
> -  }
> -};
> -
> -class DummyCallbackManager : public JITCompileCallbackManager {
> -public:
> -  DummyCallbackManager(ExecutionSession &ES)
> -      :
> JITCompileCallbackManager(llvm::make_unique<DummyTrampolinePool>(), ES,
> -                                  0) {}
> -};
> -
> -class DummyStubsManager : public orc::IndirectStubsManager {
> -public:
> -  Error createStub(StringRef StubName, JITTargetAddress InitAddr,
> -                   JITSymbolFlags Flags) override {
> -    llvm_unreachable("Not implemented");
> -  }
> -
> -  Error createStubs(const StubInitsMap &StubInits) override {
> -    llvm_unreachable("Not implemented");
> -  }
> -
> -  JITEvaluatedSymbol findStub(StringRef Name, bool ExportedStubsOnly)
> override {
> -    llvm_unreachable("Not implemented");
> -  }
> -
> -  JITEvaluatedSymbol findPointer(StringRef Name) override {
> -    llvm_unreachable("Not implemented");
> -  }
> -
> -  Error updatePointer(StringRef Name, JITTargetAddress NewAddr)
> override {
> -    llvm_unreachable("Not implemented");
> -  }
> -};
> -
> -TEST(CompileOnDemandLayerTest, FindSymbol) {
> -  MockBaseLayer<int, std::shared_ptr<Module>> TestBaseLayer;
> -  TestBaseLayer.findSymbolImpl =
> -    [](const std::string &Name, bool) {
> -      if (Name == "foo")
> -        return JITSymbol(1, JITSymbolFlags::Exported);
> -      return JITSymbol(nullptr);
> -    };
> -
> -
> -  ExecutionSession ES(std::make_shared<SymbolStringPool>());
> -  DummyCallbackManager CallbackMgr(ES);
> -
> -  auto GetResolver =
> -      [](orc::VModuleKey) ->
> std::shared_ptr<llvm::orc::SymbolResolver> {
> -    llvm_unreachable("Should never be called");
> -  };
> -
> -  auto SetResolver = [](orc::VModuleKey,
> std::shared_ptr<orc::SymbolResolver>) {
> -    llvm_unreachable("Should never be called");
> -  };
> -
> -  llvm::orc::CompileOnDemandLayer<decltype(TestBaseLayer)> COD(
> -      ES, TestBaseLayer, GetResolver, SetResolver,
> -      [](Function &F) { return std::set<Function *>{&F}; },
> CallbackMgr,
> -      [] { return llvm::make_unique<DummyStubsManager>(); }, true);
> -
> -  auto Sym = COD.findSymbol("foo", true);
> -
> -  EXPECT_TRUE(!!Sym) << "CompileOnDemand::findSymbol should call
> findSymbol in "
> -                        "the base layer.";
> -}
> -}
> 
> Copied:
> llvm/trunk/unittests/ExecutionEngine/Orc/LegacyCompileOnDemandLayerTest
> .cpp (from r344569,
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp)
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/LegacyCompileOnDemandL
> ayerTest.cpp?p2=llvm/trunk/unittests/ExecutionEngine/Orc/LegacyCompileO
> nDemandLayerTest.cpp&p1=llvm/trunk/unittests/ExecutionEngine/Orc/Compil
> eOnDemandLayerTest.cpp&r1=344569&r2=344572&rev=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
> (original)
> +++
> llvm/trunk/unittests/ExecutionEngine/Orc/LegacyCompileOnDemandLayerTest
> .cpp Mon Oct 15 15:56:10 2018
> @@ -54,7 +54,7 @@ public:
>    }
>  };
> 
> -TEST(CompileOnDemandLayerTest, FindSymbol) {
> +TEST(LegacyCompileOnDemandLayerTest, FindSymbol) {
>    MockBaseLayer<int, std::shared_ptr<Module>> TestBaseLayer;
>    TestBaseLayer.findSymbolImpl =
>      [](const std::string &Name, bool) {
> @@ -76,7 +76,7 @@ TEST(CompileOnDemandLayerTest, FindSymbo
>      llvm_unreachable("Should never be called");
>    };
> 
> -  llvm::orc::CompileOnDemandLayer<decltype(TestBaseLayer)> COD(
> +  llvm::orc::LegacyCompileOnDemandLayer<decltype(TestBaseLayer)> COD(
>        ES, TestBaseLayer, GetResolver, SetResolver,
>        [](Function &F) { return std::set<Function *>{&F}; },
> CallbackMgr,
>        [] { return llvm::make_unique<DummyStubsManager>(); }, true);
> 
> Copied:
> llvm/trunk/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayer
> Test.cpp (from r344569,
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp)
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLink
> ingLayerTest.cpp?p2=llvm/trunk/unittests/ExecutionEngine/Orc/LegacyRTDy
> ldObjectLinkingLayerTest.cpp&p1=llvm/trunk/unittests/ExecutionEngine/Or
> c/RTDyldObjectLinkingLayerTest.cpp&r1=344569&r2=344572&rev=344572&view=
> diff
> =======================================================================
> =======
> ---
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp (original)
> +++
> llvm/trunk/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayer
> Test.cpp Mon Oct 15 15:56:10 2018
> @@ -24,7 +24,7 @@ using namespace llvm::orc;
> 
>  namespace {
> 
> -class RTDyldObjectLinkingLayerExecutionTest : public testing::Test,
> +class LegacyRTDyldObjectLinkingLayerExecutionTest : public
> testing::Test,
>                                                public OrcExecutionTest
> {
> 
>  };
> @@ -45,7 +45,7 @@ public:
>    }
>  };
> 
> -TEST(RTDyldObjectLinkingLayerTest, TestSetProcessAllSections) {
> +TEST(LegacyRTDyldObjectLinkingLayerTest, TestSetProcessAllSections) {
>    class MemoryManagerWrapper : public SectionMemoryManager {
>    public:
>      MemoryManagerWrapper(bool &DebugSeen) : DebugSeen(DebugSeen) {}
> @@ -69,8 +69,8 @@ TEST(RTDyldObjectLinkingLayerTest, TestS
> 
>    ExecutionSession ES;
> 
> -  RTDyldObjectLinkingLayer ObjLayer(ES, [&MM](VModuleKey) {
> -    return RTDyldObjectLinkingLayer::Resources{
> +  LegacyRTDyldObjectLinkingLayer ObjLayer(ES, [&MM](VModuleKey) {
> +    return LegacyRTDyldObjectLinkingLayer::Resources{
>          MM, std::make_shared<NullResolver>()};
>    });
> 
> @@ -119,7 +119,7 @@ TEST(RTDyldObjectLinkingLayerTest, TestS
>    }
>  }
> 
> -TEST_F(RTDyldObjectLinkingLayerExecutionTest, NoDuplicateFinalization)
> {
> +TEST_F(LegacyRTDyldObjectLinkingLayerExecutionTest,
> NoDuplicateFinalization) {
>    if (!SupportsJIT)
>      return;
> 
> @@ -129,12 +129,12 @@ TEST_F(RTDyldObjectLinkingLayerExecution
> 
>    std::map<orc::VModuleKey, std::shared_ptr<orc::SymbolResolver>>
> Resolvers;
> 
> -  RTDyldObjectLinkingLayer ObjLayer(ES, [&](VModuleKey K) {
> +  LegacyRTDyldObjectLinkingLayer ObjLayer(ES, [&](VModuleKey K) {
>      auto I = Resolvers.find(K);
>      assert(I != Resolvers.end() && "Missing resolver");
>      auto R = std::move(I->second);
>      Resolvers.erase(I);
> -    return RTDyldObjectLinkingLayer::Resources{MM, std::move(R)};
> +    return LegacyRTDyldObjectLinkingLayer::Resources{MM,
> std::move(R)};
>    });
>    SimpleCompiler Compile(*TM);
> 
> @@ -203,7 +203,7 @@ TEST_F(RTDyldObjectLinkingLayerExecution
>        << "Extra call to finalize";
>  }
> 
> -TEST_F(RTDyldObjectLinkingLayerExecutionTest, NoPrematureAllocation) {
> +TEST_F(LegacyRTDyldObjectLinkingLayerExecutionTest,
> NoPrematureAllocation) {
>    if (!SupportsJIT)
>      return;
> 
> @@ -211,8 +211,8 @@ TEST_F(RTDyldObjectLinkingLayerExecution
> 
>    auto MM = std::make_shared<SectionMemoryManagerWrapper>();
> 
> -  RTDyldObjectLinkingLayer ObjLayer(ES, [&MM](VModuleKey K) {
> -    return RTDyldObjectLinkingLayer::Resources{
> +  LegacyRTDyldObjectLinkingLayer ObjLayer(ES, [&MM](VModuleKey K) {
> +    return LegacyRTDyldObjectLinkingLayer::Resources{
>          MM, std::make_shared<NullResolver>()};
>    });
>    SimpleCompiler Compile(*TM);
> @@ -267,12 +267,12 @@ TEST_F(RTDyldObjectLinkingLayerExecution
>           "(multiple unrelated objects loaded prior to finalization)";
>  }
> 
> -TEST_F(RTDyldObjectLinkingLayerExecutionTest,
> TestNotifyLoadedSignature) {
> +TEST_F(LegacyRTDyldObjectLinkingLayerExecutionTest,
> TestNotifyLoadedSignature) {
>    ExecutionSession ES;
> -  RTDyldObjectLinkingLayer ObjLayer(
> +  LegacyRTDyldObjectLinkingLayer ObjLayer(
>        ES,
>        [](VModuleKey) {
> -        return RTDyldObjectLinkingLayer::Resources{
> +        return LegacyRTDyldObjectLinkingLayer::Resources{
>              nullptr, std::make_shared<NullResolver>()};
>        },
>        [](VModuleKey, const object::ObjectFile &obj,
> 
> Modified:
> llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTe
> st.cpp?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
> (original)
> +++
> llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
> Mon Oct 15 15:56:10 2018
> @@ -175,19 +175,19 @@ private:
>    }
>  };
> 
> -// Test each operation on ObjectTransformLayer.
> -TEST(ObjectTransformLayerTest, Main) {
> +// Test each operation on LegacyObjectTransformLayer.
> +TEST(LegacyObjectTransformLayerTest, Main) {
>    MockBaseLayer M;
> 
>    ExecutionSession ES(std::make_shared<SymbolStringPool>());
> 
>    // Create one object transform layer using a transform (as a
> functor)
>    // that allocates new objects, and deals in unique pointers.
> -  ObjectTransformLayer<MockBaseLayer, AllocatingTransform> T1(M);
> +  LegacyObjectTransformLayer<MockBaseLayer, AllocatingTransform>
> T1(M);
> 
>    // Create a second object transform layer using a transform (as a
> lambda)
>    // that mutates objects in place, and deals in naked pointers
> -  ObjectTransformLayer<MockBaseLayer,
> +  LegacyObjectTransformLayer<MockBaseLayer,
> 
> std::function<std::shared_ptr<MockObjectFile>(
>                             std::shared_ptr<MockObjectFile>)>>
>      T2(M, [](std::shared_ptr<MockObjectFile> Obj) {
> @@ -257,9 +257,9 @@ TEST(ObjectTransformLayerTest, Main) {
>    if (!RunStaticChecks)
>      return;
> 
> -  // Make sure that ObjectTransformLayer implements the object layer
> concept
> +  // Make sure that LegacyObjectTransformLayer implements the object
> layer concept
>    // correctly by sandwitching one between an ObjectLinkingLayer and
> an
> -  // IRCompileLayer, verifying that it compiles if we have a call to
> the
> +  // LegacyIRCompileLayer, verifying that it compiles if we have a
> call to the
>    // IRComileLayer's addModule that should call the transform layer's
>    // addObject, and also calling the other public transform layer
> methods
>    // directly to make sure the methods they intend to forward to exist
> on
> @@ -282,8 +282,8 @@ TEST(ObjectTransformLayerTest, Main) {
>    };
> 
>    // Construct the jit layers.
> -  RTDyldObjectLinkingLayer BaseLayer(ES, [](VModuleKey) {
> -    return RTDyldObjectLinkingLayer::Resources{
> +  LegacyRTDyldObjectLinkingLayer BaseLayer(ES, [](VModuleKey) {
> +    return LegacyRTDyldObjectLinkingLayer::Resources{
>          std::make_shared<llvm::SectionMemoryManager>(),
>          std::make_shared<NullResolver>()};
>    });
> @@ -291,20 +291,20 @@ TEST(ObjectTransformLayerTest, Main) {
>    auto IdentityTransform = [](std::unique_ptr<llvm::MemoryBuffer> Obj)
> {
>      return Obj;
>    };
> -  ObjectTransformLayer<decltype(BaseLayer),
> decltype(IdentityTransform)>
> +  LegacyObjectTransformLayer<decltype(BaseLayer),
> decltype(IdentityTransform)>
>        TransformLayer(BaseLayer, IdentityTransform);
>    auto NullCompiler = [](llvm::Module &) {
>      return std::unique_ptr<llvm::MemoryBuffer>(nullptr);
>    };
> -  IRCompileLayer<decltype(TransformLayer), decltype(NullCompiler)>
> +  LegacyIRCompileLayer<decltype(TransformLayer),
> decltype(NullCompiler)>
>      CompileLayer(TransformLayer, NullCompiler);
> 
> -  // Make sure that the calls from IRCompileLayer to
> ObjectTransformLayer
> +  // Make sure that the calls from LegacyIRCompileLayer to
> LegacyObjectTransformLayer
>    // compile.
>    cantFail(CompileLayer.addModule(ES.allocateVModule(),
>                                    std::unique_ptr<llvm::Module>()));
> 
> -  // Make sure that the calls from ObjectTransformLayer to
> ObjectLinkingLayer
> +  // Make sure that the calls from LegacyObjectTransformLayer to
> ObjectLinkingLayer
>    // compile.
>    VModuleKey DummyKey = ES.allocateVModule();
>    cantFail(TransformLayer.emitAndFinalize(DummyKey));
> 
> Removed:
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.
> cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLay
> er2Test.cpp?rev=344571&view=auto
> =======================================================================
> =======
> ---
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.
> cpp (original)
> +++
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.
> cpp (removed)
> @@ -1,228 +0,0 @@
> -//===--- RTDyldObjectLinkingLayer2Test.cpp - RTDyld linking layer
> tests ---===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open
> Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===-----------------------------------------------------------------
> -----===//
> -
> -#include "OrcTestCommon.h"
> -#include "llvm/ExecutionEngine/ExecutionEngine.h"
> -#include "llvm/ExecutionEngine/Orc/CompileUtils.h"
> -#include "llvm/ExecutionEngine/Orc/IRCompileLayer.h"
> -#include "llvm/ExecutionEngine/Orc/LambdaResolver.h"
> -#include "llvm/ExecutionEngine/Orc/Legacy.h"
> -#include "llvm/ExecutionEngine/Orc/NullResolver.h"
> -#include "llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h"
> -#include "llvm/ExecutionEngine/SectionMemoryManager.h"
> -#include "llvm/IR/Constants.h"
> -#include "llvm/IR/LLVMContext.h"
> -#include "gtest/gtest.h"
> -
> -using namespace llvm;
> -using namespace llvm::orc;
> -
> -namespace {
> -
> -class RTDyldObjectLinkingLayer2ExecutionTest : public testing::Test,
> -                                               public OrcExecutionTest
> {};
> -
> -// Adds an object with a debug section to RuntimeDyld and then returns
> whether
> -// the debug section was passed to the memory manager.
> -static bool testSetProcessAllSections(std::unique_ptr<MemoryBuffer>
> Obj,
> -                                      bool ProcessAllSections) {
> -  class MemoryManagerWrapper : public SectionMemoryManager {
> -  public:
> -    MemoryManagerWrapper(bool &DebugSeen) : DebugSeen(DebugSeen) {}
> -    uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment,
> -                                 unsigned SectionID, StringRef
> SectionName,
> -                                 bool IsReadOnly) override {
> -      if (SectionName == ".debug_str")
> -        DebugSeen = true;
> -      return SectionMemoryManager::allocateDataSection(
> -          Size, Alignment, SectionID, SectionName, IsReadOnly);
> -    }
> -
> -  private:
> -    bool &DebugSeen;
> -  };
> -
> -  bool DebugSectionSeen = false;
> -
> -  ExecutionSession ES;
> -  auto &JD = ES.createJITDylib("main");
> -  auto Foo = ES.intern("foo");
> -
> -  RTDyldObjectLinkingLayer2 ObjLayer(ES,
> [&DebugSectionSeen](VModuleKey) {
> -    return llvm::make_unique<MemoryManagerWrapper>(DebugSectionSeen);
> -  });
> -
> -  auto OnResolveDoNothing = [](Expected<SymbolMap> R) {
> -    cantFail(std::move(R));
> -  };
> -
> -  auto OnReadyDoNothing = [](Error Err) { cantFail(std::move(Err)); };
> -
> -  ObjLayer.setProcessAllSections(ProcessAllSections);
> -  auto K = ES.allocateVModule();
> -  cantFail(ObjLayer.add(JD, K, std::move(Obj)));
> -  ES.lookup({&JD}, {Foo}, OnResolveDoNothing, OnReadyDoNothing,
> -            NoDependenciesToRegister);
> -  return DebugSectionSeen;
> -}
> -
> -TEST(RTDyldObjectLinkingLayer2Test, TestSetProcessAllSections) {
> -  LLVMContext Context;
> -  auto M = llvm::make_unique<Module>("", Context);
> -  M->setTargetTriple("x86_64-unknown-linux-gnu");
> -  Type *Int32Ty = IntegerType::get(Context, 32);
> -  GlobalVariable *GV =
> -      new GlobalVariable(*M, Int32Ty, false,
> GlobalValue::ExternalLinkage,
> -                         ConstantInt::get(Int32Ty, 42), "foo");
> -
> -  GV->setSection(".debug_str");
> -
> -  // Initialize the native target in case this is the first unit test
> -  // to try to build a TM.
> -  OrcNativeTarget::initialize();
> -  std::unique_ptr<TargetMachine> TM(EngineBuilder().selectTarget(
> -      Triple(M->getTargetTriple()), "", "", SmallVector<std::string,
> 1>()));
> -  if (!TM)
> -    return;
> -
> -  auto Obj = SimpleCompiler(*TM)(*M);
> -
> -  EXPECT_FALSE(testSetProcessAllSections(
> -      MemoryBuffer::getMemBufferCopy(Obj->getBuffer()), false))
> -      << "Debug section seen despite ProcessAllSections being false";
> -  EXPECT_TRUE(testSetProcessAllSections(std::move(Obj), true))
> -      << "Expected to see debug section when ProcessAllSections is
> true";
> -}
> -
> -TEST(RTDyldObjectLinkingLayer2Test, TestOverrideObjectFlags) {
> -
> -  OrcNativeTarget::initialize();
> -
> -  std::unique_ptr<TargetMachine> TM(
> -      EngineBuilder().selectTarget(Triple("x86_64-unknown-linux-gnu"),
> "", "",
> -                                   SmallVector<std::string, 1>()));
> -
> -  if (!TM)
> -    return;
> -
> -  // Our compiler is going to modify symbol visibility settings
> without telling
> -  // ORC. This will test our ability to override the flags later.
> -  class FunkySimpleCompiler : public SimpleCompiler {
> -  public:
> -    FunkySimpleCompiler(TargetMachine &TM) : SimpleCompiler(TM) {}
> -
> -    CompileResult operator()(Module &M) {
> -      auto *Foo = M.getFunction("foo");
> -      assert(Foo && "Expected function Foo not found");
> -      Foo->setVisibility(GlobalValue::HiddenVisibility);
> -      return SimpleCompiler::operator()(M);
> -    }
> -  };
> -
> -  // Create a module with two void() functions: foo and bar.
> -  ThreadSafeContext TSCtx(llvm::make_unique<LLVMContext>());
> -  ThreadSafeModule M;
> -  {
> -    ModuleBuilder MB(*TSCtx.getContext(), TM->getTargetTriple().str(),
> "dummy");
> -    MB.getModule()->setDataLayout(TM->createDataLayout());
> -
> -    Function *FooImpl = MB.createFunctionDecl<void()>("foo");
> -    BasicBlock *FooEntry =
> -        BasicBlock::Create(*TSCtx.getContext(), "entry", FooImpl);
> -    IRBuilder<> B1(FooEntry);
> -    B1.CreateRetVoid();
> -
> -    Function *BarImpl = MB.createFunctionDecl<void()>("bar");
> -    BasicBlock *BarEntry =
> -        BasicBlock::Create(*TSCtx.getContext(), "entry", BarImpl);
> -    IRBuilder<> B2(BarEntry);
> -    B2.CreateRetVoid();
> -
> -    M = ThreadSafeModule(MB.takeModule(), std::move(TSCtx));
> -  }
> -
> -  // Create a simple stack and set the override flags option.
> -  ExecutionSession ES;
> -  auto &JD = ES.createJITDylib("main");
> -  auto Foo = ES.intern("foo");
> -  RTDyldObjectLinkingLayer2 ObjLayer(
> -      ES, [](VModuleKey) { return
> llvm::make_unique<SectionMemoryManager>(); });
> -  IRCompileLayer2 CompileLayer(ES, ObjLayer,
> FunkySimpleCompiler(*TM));
> -
> -  ObjLayer.setOverrideObjectFlagsWithResponsibilityFlags(true);
> -
> -  cantFail(CompileLayer.add(JD, ES.allocateVModule(), std::move(M)));
> -  ES.lookup({&JD}, {Foo}, [](Expected<SymbolMap> R) {
> cantFail(std::move(R)); },
> -            [](Error Err) { cantFail(std::move(Err)); },
> -            NoDependenciesToRegister);
> -}
> -
> -TEST(RTDyldObjectLinkingLayer2Test,
> TestAutoClaimResponsibilityForSymbols) {
> -
> -  OrcNativeTarget::initialize();
> -
> -  std::unique_ptr<TargetMachine> TM(
> -      EngineBuilder().selectTarget(Triple("x86_64-unknown-linux-gnu"),
> "", "",
> -                                   SmallVector<std::string, 1>()));
> -
> -  if (!TM)
> -    return;
> -
> -  // Our compiler is going to add a new symbol without telling ORC.
> -  // This will test our ability to auto-claim responsibility later.
> -  class FunkySimpleCompiler : public SimpleCompiler {
> -  public:
> -    FunkySimpleCompiler(TargetMachine &TM) : SimpleCompiler(TM) {}
> -
> -    CompileResult operator()(Module &M) {
> -      Function *BarImpl =
> -          Function::Create(TypeBuilder<void(),
> false>::get(M.getContext()),
> -                           GlobalValue::ExternalLinkage, "bar", &M);
> -      BasicBlock *BarEntry =
> -          BasicBlock::Create(M.getContext(), "entry", BarImpl);
> -      IRBuilder<> B(BarEntry);
> -      B.CreateRetVoid();
> -
> -      return SimpleCompiler::operator()(M);
> -    }
> -  };
> -
> -  // Create a module with two void() functions: foo and bar.
> -  ThreadSafeContext TSCtx(llvm::make_unique<LLVMContext>());
> -  ThreadSafeModule M;
> -  {
> -    ModuleBuilder MB(*TSCtx.getContext(), TM->getTargetTriple().str(),
> "dummy");
> -    MB.getModule()->setDataLayout(TM->createDataLayout());
> -
> -    Function *FooImpl = MB.createFunctionDecl<void()>("foo");
> -    BasicBlock *FooEntry =
> -        BasicBlock::Create(*TSCtx.getContext(), "entry", FooImpl);
> -    IRBuilder<> B(FooEntry);
> -    B.CreateRetVoid();
> -
> -    M = ThreadSafeModule(MB.takeModule(), std::move(TSCtx));
> -  }
> -
> -  // Create a simple stack and set the override flags option.
> -  ExecutionSession ES;
> -  auto &JD = ES.createJITDylib("main");
> -  auto Foo = ES.intern("foo");
> -  RTDyldObjectLinkingLayer2 ObjLayer(
> -      ES, [](VModuleKey) { return
> llvm::make_unique<SectionMemoryManager>(); });
> -  IRCompileLayer2 CompileLayer(ES, ObjLayer,
> FunkySimpleCompiler(*TM));
> -
> -  ObjLayer.setAutoClaimResponsibilityForObjectSymbols(true);
> -
> -  cantFail(CompileLayer.add(JD, ES.allocateVModule(), std::move(M)));
> -  ES.lookup({&JD}, {Foo}, [](Expected<SymbolMap> R) {
> cantFail(std::move(R)); },
> -            [](Error Err) { cantFail(std::move(Err)); },
> -            NoDependenciesToRegister);
> -}
> -
> -} // end anonymous namespace
> 
> Modified:
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLay
> erTest.cpp?rev=344572&r1=344571&r2=344572&view=diff
> =======================================================================
> =======
> ---
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp (original)
> +++
> llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.c
> pp Mon Oct 15 15:56:10 2018
> @@ -1,4 +1,4 @@
> -//===- RTDyldObjectLinkingLayerTest.cpp - RTDyld linking layer unit
> tests -===//
> +//===--- RTDyldObjectLinkingLayerTest.cpp - RTDyld linking layer tests
> ---===//
>  //
>  //                     The LLVM Compiler Infrastructure
>  //
> @@ -7,13 +7,14 @@
>  //
>  //===-----------------------------------------------------------------
> -----===//
> 
> -#include "llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h"
>  #include "OrcTestCommon.h"
>  #include "llvm/ExecutionEngine/ExecutionEngine.h"
>  #include "llvm/ExecutionEngine/Orc/CompileUtils.h"
> +#include "llvm/ExecutionEngine/Orc/IRCompileLayer.h"
>  #include "llvm/ExecutionEngine/Orc/LambdaResolver.h"
>  #include "llvm/ExecutionEngine/Orc/Legacy.h"
>  #include "llvm/ExecutionEngine/Orc/NullResolver.h"
> +#include "llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h"
>  #include "llvm/ExecutionEngine/SectionMemoryManager.h"
>  #include "llvm/IR/Constants.h"
>  #include "llvm/IR/LLVMContext.h"
> @@ -25,258 +26,203 @@ using namespace llvm::orc;
>  namespace {
> 
>  class RTDyldObjectLinkingLayerExecutionTest : public testing::Test,
> -                                              public OrcExecutionTest
> {
> -
> -};
> -
> -class SectionMemoryManagerWrapper : public SectionMemoryManager {
> -public:
> -  int FinalizationCount = 0;
> -  int NeedsToReserveAllocationSpaceCount = 0;
> -
> -  bool needsToReserveAllocationSpace() override {
> -    ++NeedsToReserveAllocationSpaceCount;
> -    return SectionMemoryManager::needsToReserveAllocationSpace();
> -  }
> -
> -  bool finalizeMemory(std::string *ErrMsg = nullptr) override {
> -    ++FinalizationCount;
> -    return SectionMemoryManager::finalizeMemory(ErrMsg);
> -  }
> -};
> +                                               public OrcExecutionTest
> {};
> 
> -TEST(RTDyldObjectLinkingLayerTest, TestSetProcessAllSections) {
> +// Adds an object with a debug section to RuntimeDyld and then returns
> whether
> +// the debug section was passed to the memory manager.
> +static bool testSetProcessAllSections(std::unique_ptr<MemoryBuffer>
> Obj,
> +                                      bool ProcessAllSections) {
>    class MemoryManagerWrapper : public SectionMemoryManager {
>    public:
>      MemoryManagerWrapper(bool &DebugSeen) : DebugSeen(DebugSeen) {}
>      uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment,
> -                                 unsigned SectionID,
> -                                 StringRef SectionName,
> +                                 unsigned SectionID, StringRef
> SectionName,
>                                   bool IsReadOnly) override {
>        if (SectionName == ".debug_str")
>          DebugSeen = true;
> -      return SectionMemoryManager::allocateDataSection(Size,
> Alignment,
> -                                                         SectionID,
> -                                                         SectionName,
> -                                                         IsReadOnly);
> +      return SectionMemoryManager::allocateDataSection(
> +          Size, Alignment, SectionID, SectionName, IsReadOnly);
>      }
> +
>    private:
>      bool &DebugSeen;
>    };
> 
>    bool DebugSectionSeen = false;
> -  auto MM = std::make_shared<MemoryManagerWrapper>(DebugSectionSeen);
> 
>    ExecutionSession ES;
> +  auto &JD = ES.createJITDylib("main");
> +  auto Foo = ES.intern("foo");
> 
> -  RTDyldObjectLinkingLayer ObjLayer(ES, [&MM](VModuleKey) {
> -    return RTDyldObjectLinkingLayer::Resources{
> -        MM, std::make_shared<NullResolver>()};
> +  RTDyldObjectLinkingLayer ObjLayer(ES,
> [&DebugSectionSeen](VModuleKey) {
> +    return llvm::make_unique<MemoryManagerWrapper>(DebugSectionSeen);
>    });
> 
> +  auto OnResolveDoNothing = [](Expected<SymbolMap> R) {
> +    cantFail(std::move(R));
> +  };
> +
> +  auto OnReadyDoNothing = [](Error Err) { cantFail(std::move(Err)); };
> +
> +  ObjLayer.setProcessAllSections(ProcessAllSections);
> +  auto K = ES.allocateVModule();
> +  cantFail(ObjLayer.add(JD, K, std::move(Obj)));
> +  ES.lookup({&JD}, {Foo}, OnResolveDoNothing, OnReadyDoNothing,
> +            NoDependenciesToRegister);
> +  return DebugSectionSeen;
> +}
> +
> +TEST(RTDyldObjectLinkingLayerTest, TestSetProcessAllSections) {
>    LLVMContext Context;
>    auto M = llvm::make_unique<Module>("", Context);
>    M->setTargetTriple("x86_64-unknown-linux-gnu");
>    Type *Int32Ty = IntegerType::get(Context, 32);
>    GlobalVariable *GV =
> -    new GlobalVariable(*M, Int32Ty, false,
> GlobalValue::ExternalLinkage,
> +      new GlobalVariable(*M, Int32Ty, false,
> GlobalValue::ExternalLinkage,
>                           ConstantInt::get(Int32Ty, 42), "foo");
> 
>    GV->setSection(".debug_str");
> 
> -
>    // Initialize the native target in case this is the first unit test
>    // to try to build a TM.
>    OrcNativeTarget::initialize();
> -  std::unique_ptr<TargetMachine> TM(
> -    EngineBuilder().selectTarget(Triple(M->getTargetTriple()), "", "",
> -                                 SmallVector<std::string, 1>()));
> +  std::unique_ptr<TargetMachine> TM(EngineBuilder().selectTarget(
> +      Triple(M->getTargetTriple()), "", "", SmallVector<std::string,
> 1>()));
>    if (!TM)
>      return;
> 
>    auto Obj = SimpleCompiler(*TM)(*M);
> 
> -  {
> -    // Test with ProcessAllSections = false (the default).
> -    auto K = ES.allocateVModule();
> -    cantFail(ObjLayer.addObject(
> -        K, MemoryBuffer::getMemBufferCopy(Obj->getBuffer())));
> -    cantFail(ObjLayer.emitAndFinalize(K));
> -    EXPECT_EQ(DebugSectionSeen, false)
> -      << "Unexpected debug info section";
> -    cantFail(ObjLayer.removeObject(K));
> -  }
> -
> -  {
> -    // Test with ProcessAllSections = true.
> -    ObjLayer.setProcessAllSections(true);
> -    auto K = ES.allocateVModule();
> -    cantFail(ObjLayer.addObject(K, std::move(Obj)));
> -    cantFail(ObjLayer.emitAndFinalize(K));
> -    EXPECT_EQ(DebugSectionSeen, true)
> -      << "Expected debug info section not seen";
> -    cantFail(ObjLayer.removeObject(K));
> -  }
> +  EXPECT_FALSE(testSetProcessAllSections(
> +      MemoryBuffer::getMemBufferCopy(Obj->getBuffer()), false))
> +      << "Debug section seen despite ProcessAllSections being false";
> +  EXPECT_TRUE(testSetProcessAllSections(std::move(Obj), true))
> +      << "Expected to see debug section when ProcessAllSections is
> true";
>  }
> 
> -TEST_F(RTDyldObjectLinkingLayerExecutionTest, NoDuplicateFinalization)
> {
> -  if (!SupportsJIT)
> -    return;
> +TEST(RTDyldObjectLinkingLayerTest, TestOverrideObjectFlags) {
> 
> -  ExecutionSession ES;
> +  OrcNativeTarget::initialize();
> 
> -  auto MM = std::make_shared<SectionMemoryManagerWrapper>();
> +  std::unique_ptr<TargetMachine> TM(
> +      EngineBuilder().selectTarget(Triple("x86_64-unknown-linux-gnu"),
> "", "",
> +                                   SmallVector<std::string, 1>()));
> 
> -  std::map<orc::VModuleKey, std::shared_ptr<orc::SymbolResolver>>
> Resolvers;
> +  if (!TM)
> +    return;
> 
> -  RTDyldObjectLinkingLayer ObjLayer(ES, [&](VModuleKey K) {
> -    auto I = Resolvers.find(K);
> -    assert(I != Resolvers.end() && "Missing resolver");
> -    auto R = std::move(I->second);
> -    Resolvers.erase(I);
> -    return RTDyldObjectLinkingLayer::Resources{MM, std::move(R)};
> -  });
> -  SimpleCompiler Compile(*TM);
> +  // Our compiler is going to modify symbol visibility settings
> without telling
> +  // ORC. This will test our ability to override the flags later.
> +  class FunkySimpleCompiler : public SimpleCompiler {
> +  public:
> +    FunkySimpleCompiler(TargetMachine &TM) : SimpleCompiler(TM) {}
> 
> -  // Create a pair of modules that will trigger recursive
> finalization:
> -  // Module 1:
> -  //   int bar() { return 42; }
> -  // Module 2:
> -  //   int bar();
> -  //   int foo() { return bar(); }
> -  //
> -  // Verify that the memory manager is only finalized once (for Module
> 2).
> -  // Failure suggests that finalize is being called on the inner
> RTDyld
> -  // instance (for Module 1) which is unsafe, as it will prevent
> relocation of
> -  // Module 2.
> +    CompileResult operator()(Module &M) {
> +      auto *Foo = M.getFunction("foo");
> +      assert(Foo && "Expected function Foo not found");
> +      Foo->setVisibility(GlobalValue::HiddenVisibility);
> +      return SimpleCompiler::operator()(M);
> +    }
> +  };
> 
> -  ModuleBuilder MB1(Context, "", "dummy");
> +  // Create a module with two void() functions: foo and bar.
> +  ThreadSafeContext TSCtx(llvm::make_unique<LLVMContext>());
> +  ThreadSafeModule M;
>    {
> -    MB1.getModule()->setDataLayout(TM->createDataLayout());
> -    Function *BarImpl = MB1.createFunctionDecl<int32_t(void)>("bar");
> -    BasicBlock *BarEntry = BasicBlock::Create(Context, "entry",
> BarImpl);
> -    IRBuilder<> Builder(BarEntry);
> -    IntegerType *Int32Ty = IntegerType::get(Context, 32);
> -    Value *FourtyTwo = ConstantInt::getSigned(Int32Ty, 42);
> -    Builder.CreateRet(FourtyTwo);
> -  }
> +    ModuleBuilder MB(*TSCtx.getContext(), TM->getTargetTriple().str(),
> "dummy");
> +    MB.getModule()->setDataLayout(TM->createDataLayout());
> 
> -  auto Obj1 = Compile(*MB1.getModule());
> +    Function *FooImpl = MB.createFunctionDecl<void()>("foo");
> +    BasicBlock *FooEntry =
> +        BasicBlock::Create(*TSCtx.getContext(), "entry", FooImpl);
> +    IRBuilder<> B1(FooEntry);
> +    B1.CreateRetVoid();
> 
> -  ModuleBuilder MB2(Context, "", "dummy");
> -  {
> -    MB2.getModule()->setDataLayout(TM->createDataLayout());
> -    Function *BarDecl = MB2.createFunctionDecl<int32_t(void)>("bar");
> -    Function *FooImpl = MB2.createFunctionDecl<int32_t(void)>("foo");
> -    BasicBlock *FooEntry = BasicBlock::Create(Context, "entry",
> FooImpl);
> -    IRBuilder<> Builder(FooEntry);
> -    Builder.CreateRet(Builder.CreateCall(BarDecl));
> +    Function *BarImpl = MB.createFunctionDecl<void()>("bar");
> +    BasicBlock *BarEntry =
> +        BasicBlock::Create(*TSCtx.getContext(), "entry", BarImpl);
> +    IRBuilder<> B2(BarEntry);
> +    B2.CreateRetVoid();
> +
> +    M = ThreadSafeModule(MB.takeModule(), std::move(TSCtx));
>    }
> -  auto Obj2 = Compile(*MB2.getModule());
> 
> -  auto K1 = ES.allocateVModule();
> -  Resolvers[K1] = std::make_shared<NullResolver>();
> -  cantFail(ObjLayer.addObject(K1, std::move(Obj1)));
> -
> -  auto K2 = ES.allocateVModule();
> -  auto LegacyLookup = [&](const std::string &Name) {
> -    return ObjLayer.findSymbol(Name, true);
> -  };
> +  // Create a simple stack and set the override flags option.
> +  ExecutionSession ES;
> +  auto &JD = ES.createJITDylib("main");
> +  auto Foo = ES.intern("foo");
> +  RTDyldObjectLinkingLayer ObjLayer(
> +      ES, [](VModuleKey) { return
> llvm::make_unique<SectionMemoryManager>(); });
> +  IRCompileLayer CompileLayer(ES, ObjLayer, FunkySimpleCompiler(*TM));
> +
> +  ObjLayer.setOverrideObjectFlagsWithResponsibilityFlags(true);
> 
> -  Resolvers[K2] = createSymbolResolver(
> -      [&](const SymbolNameSet &Symbols) {
> -        return cantFail(
> -            getResponsibilitySetWithLegacyFn(Symbols, LegacyLookup));
> -      },
> -      [&](std::shared_ptr<AsynchronousSymbolQuery> Query,
> -          const SymbolNameSet &Symbols) {
> -        return lookupWithLegacyFn(ES, *Query, Symbols, LegacyLookup);
> -      });
> -
> -  cantFail(ObjLayer.addObject(K2, std::move(Obj2)));
> -  cantFail(ObjLayer.emitAndFinalize(K2));
> -  cantFail(ObjLayer.removeObject(K2));
> -
> -  // Finalization of module 2 should trigger finalization of module 1.
> -  // Verify that finalize on SMMW is only called once.
> -  EXPECT_EQ(MM->FinalizationCount, 1)
> -      << "Extra call to finalize";
> +  cantFail(CompileLayer.add(JD, ES.allocateVModule(), std::move(M)));
> +  ES.lookup({&JD}, {Foo}, [](Expected<SymbolMap> R) {
> cantFail(std::move(R)); },
> +            [](Error Err) { cantFail(std::move(Err)); },
> +            NoDependenciesToRegister);
>  }
> 
> -TEST_F(RTDyldObjectLinkingLayerExecutionTest, NoPrematureAllocation) {
> -  if (!SupportsJIT)
> -    return;
> +TEST(RTDyldObjectLinkingLayerTest,
> TestAutoClaimResponsibilityForSymbols) {
> 
> -  ExecutionSession ES;
> +  OrcNativeTarget::initialize();
> 
> -  auto MM = std::make_shared<SectionMemoryManagerWrapper>();
> +  std::unique_ptr<TargetMachine> TM(
> +      EngineBuilder().selectTarget(Triple("x86_64-unknown-linux-gnu"),
> "", "",
> +                                   SmallVector<std::string, 1>()));
> 
> -  RTDyldObjectLinkingLayer ObjLayer(ES, [&MM](VModuleKey K) {
> -    return RTDyldObjectLinkingLayer::Resources{
> -        MM, std::make_shared<NullResolver>()};
> -  });
> -  SimpleCompiler Compile(*TM);
> +  if (!TM)
> +    return;
> 
> -  // Create a pair of unrelated modules:
> -  //
> -  // Module 1:
> -  //   int foo() { return 42; }
> -  // Module 2:
> -  //   int bar() { return 7; }
> -  //
> -  // Both modules will share a memory manager. We want to verify that
> the
> -  // second object is not loaded before the first one is finalized. To
> do this
> -  // in a portable way, we abuse the
> -  // RuntimeDyld::MemoryManager::needsToReserveAllocationSpace hook,
> which is
> -  // called once per object before any sections are allocated.
> +  // Our compiler is going to add a new symbol without telling ORC.
> +  // This will test our ability to auto-claim responsibility later.
> +  class FunkySimpleCompiler : public SimpleCompiler {
> +  public:
> +    FunkySimpleCompiler(TargetMachine &TM) : SimpleCompiler(TM) {}
> 
> -  ModuleBuilder MB1(Context, "", "dummy");
> -  {
> -    MB1.getModule()->setDataLayout(TM->createDataLayout());
> -    Function *BarImpl = MB1.createFunctionDecl<int32_t(void)>("foo");
> -    BasicBlock *BarEntry = BasicBlock::Create(Context, "entry",
> BarImpl);
> -    IRBuilder<> Builder(BarEntry);
> -    IntegerType *Int32Ty = IntegerType::get(Context, 32);
> -    Value *FourtyTwo = ConstantInt::getSigned(Int32Ty, 42);
> -    Builder.CreateRet(FourtyTwo);
> -  }
> +    CompileResult operator()(Module &M) {
> +      Function *BarImpl =
> +          Function::Create(TypeBuilder<void(),
> false>::get(M.getContext()),
> +                           GlobalValue::ExternalLinkage, "bar", &M);
> +      BasicBlock *BarEntry =
> +          BasicBlock::Create(M.getContext(), "entry", BarImpl);
> +      IRBuilder<> B(BarEntry);
> +      B.CreateRetVoid();
> 
> -  auto Obj1 = Compile(*MB1.getModule());
> +      return SimpleCompiler::operator()(M);
> +    }
> +  };
> 
> -  ModuleBuilder MB2(Context, "", "dummy");
> +  // Create a module with two void() functions: foo and bar.
> +  ThreadSafeContext TSCtx(llvm::make_unique<LLVMContext>());
> +  ThreadSafeModule M;
>    {
> -    MB2.getModule()->setDataLayout(TM->createDataLayout());
> -    Function *BarImpl = MB2.createFunctionDecl<int32_t(void)>("bar");
> -    BasicBlock *BarEntry = BasicBlock::Create(Context, "entry",
> BarImpl);
> -    IRBuilder<> Builder(BarEntry);
> -    IntegerType *Int32Ty = IntegerType::get(Context, 32);
> -    Value *Seven = ConstantInt::getSigned(Int32Ty, 7);
> -    Builder.CreateRet(Seven);
> -  }
> -  auto Obj2 = Compile(*MB2.getModule());
> +    ModuleBuilder MB(*TSCtx.getContext(), TM->getTargetTriple().str(),
> "dummy");
> +    MB.getModule()->setDataLayout(TM->createDataLayout());
> 
> -  auto K = ES.allocateVModule();
> -  cantFail(ObjLayer.addObject(K, std::move(Obj1)));
> -  cantFail(ObjLayer.addObject(ES.allocateVModule(), std::move(Obj2)));
> -  cantFail(ObjLayer.emitAndFinalize(K));
> -  cantFail(ObjLayer.removeObject(K));
> -
> -  // Only one call to needsToReserveAllocationSpace should have been
> made.
> -  EXPECT_EQ(MM->NeedsToReserveAllocationSpaceCount, 1)
> -      << "More than one call to needsToReserveAllocationSpace "
> -         "(multiple unrelated objects loaded prior to finalization)";
> -}
> +    Function *FooImpl = MB.createFunctionDecl<void()>("foo");
> +    BasicBlock *FooEntry =
> +        BasicBlock::Create(*TSCtx.getContext(), "entry", FooImpl);
> +    IRBuilder<> B(FooEntry);
> +    B.CreateRetVoid();
> 
> -TEST_F(RTDyldObjectLinkingLayerExecutionTest,
> TestNotifyLoadedSignature) {
> +    M = ThreadSafeModule(MB.takeModule(), std::move(TSCtx));
> +  }
> +
> +  // Create a simple stack and set the override flags option.
>    ExecutionSession ES;
> +  auto &JD = ES.createJITDylib("main");
> +  auto Foo = ES.intern("foo");
>    RTDyldObjectLinkingLayer ObjLayer(
> -      ES,
> -      [](VModuleKey) {
> -        return RTDyldObjectLinkingLayer::Resources{
> -            nullptr, std::make_shared<NullResolver>()};
> -      },
> -      [](VModuleKey, const object::ObjectFile &obj,
> -         const RuntimeDyld::LoadedObjectInfo &info) {});
> +      ES, [](VModuleKey) { return
> llvm::make_unique<SectionMemoryManager>(); });
> +  IRCompileLayer CompileLayer(ES, ObjLayer, FunkySimpleCompiler(*TM));
> +
> +  ObjLayer.setAutoClaimResponsibilityForObjectSymbols(true);
> +
> +  cantFail(CompileLayer.add(JD, ES.allocateVModule(), std::move(M)));
> +  ES.lookup({&JD}, {Foo}, [](Expected<SymbolMap> R) {
> cantFail(std::move(R)); },
> +            [](Error Err) { cantFail(std::move(Err)); },
> +            NoDependenciesToRegister);
>  }
> 
>  } // end anonymous namespace
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list