[arch-commits] Commit in julia/trunk (julia-llvm5.patch)

Antonio Rojas arojas at archlinux.org
Fri Sep 8 19:09:12 UTC 2017


    Date: Friday, September 8, 2017 @ 19:09:11
  Author: arojas
Revision: 256438

Switch to bundled LLVM again

Deleted:
  julia/trunk/julia-llvm5.patch

-------------------+
 julia-llvm5.patch |  542 ----------------------------------------------------
 1 file changed, 542 deletions(-)

Deleted: julia-llvm5.patch
===================================================================
--- julia-llvm5.patch	2017-09-08 19:08:56 UTC (rev 256437)
+++ julia-llvm5.patch	2017-09-08 19:09:11 UTC (rev 256438)
@@ -1,542 +0,0 @@
-diff --git a/src/ccall.cpp b/src/ccall.cpp
-index 6edf5cd222..794944c216 100644
---- a/src/ccall.cpp
-+++ b/src/ccall.cpp
-@@ -1275,7 +1275,7 @@ std::string generate_func_sig()
-     assert(rt && !jl_is_abstract_ref_type(rt));
- 
- #if JL_LLVM_VERSION >= 50000
--    std::vector<AttributeList> paramattrs;
-+    std::vector<AttrBuilder> paramattrs;
- #else
-     std::vector<AttributeSet> paramattrs;
- #endif
-@@ -1302,7 +1302,7 @@ std::string generate_func_sig()
- #endif
-             retattrs.addAttribute(Attribute::NoAlias);
- #if JL_LLVM_VERSION >= 50000
--            paramattrs.push_back(AttributeList::get(jl_LLVMContext, 1, retattrs));
-+            paramattrs.push_back(std::move(retattrs));
- #else
-             paramattrs.push_back(AttributeSet::get(jl_LLVMContext, 1, retattrs));
- #endif
-@@ -1388,24 +1388,25 @@ std::string generate_func_sig()
-         do { // for each arg for which this type applies, add the appropriate LLVM parameter attributes
-             if (i < nargs) { // if vararg, the last declared arg type may not have a corresponding arg value
- #if JL_LLVM_VERSION >= 50000
--                AttributeList params = AttributeList::get(jl_LLVMContext, i + sret + 1, ab);
-+                paramattrs.push_back(std::move(ab));
- #else
-                 AttributeSet params = AttributeSet::get(jl_LLVMContext, i + sret + 1, ab);
--#endif
-                 paramattrs.push_back(params);
-+#endif              
-             }
-             i++;
-         } while (current_isVa && i < nargs); // if is this is the vararg, loop to the end
-     }
- 
-     for (i = 0; i < nargs + sret; ++i) {
-+        const auto &as = paramattrs.at(i);
- #if JL_LLVM_VERSION >= 50000
--        const AttributeList &as = paramattrs.at(i);
-+        if (!as.hasAttributes())
-+            continue;
- #else
-         const AttributeSet &as = paramattrs.at(i);
- #endif
--        if (!as.isEmpty())
--            attributes = attributes.addAttributes(jl_LLVMContext, i + 1, as);
-+        attributes = attributes.addAttributes(jl_LLVMContext, i + 1, as);
-     }
-     if (rt == jl_bottom_type) {
-         attributes = attributes.addAttribute(jl_LLVMContext,
-diff --git a/src/cgmemmgr.cpp b/src/cgmemmgr.cpp
-index 85316d9667..6b2f43ebff 100644
---- a/src/cgmemmgr.cpp
-+++ b/src/cgmemmgr.cpp
-@@ -744,8 +744,11 @@ public:
-     }
-     void registerEHFrames(uint8_t *Addr, uint64_t LoadAddr,
-                           size_t Size) override;
-+#if 0
-+    // Disable for now since we are not actually using this.
-     void deregisterEHFrames(uint8_t *Addr, uint64_t LoadAddr,
-                             size_t Size) override;
-+#endif
-     uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment,
-                                  unsigned SectionID,
-                                  StringRef SectionName) override;
-@@ -872,12 +875,14 @@ void RTDyldMemoryManagerJL::registerEHFrames(uint8_t *Addr,
-     }
- }
- 
-+#if 0
- void RTDyldMemoryManagerJL::deregisterEHFrames(uint8_t *Addr,
-                                                uint64_t LoadAddr,
-                                                size_t Size)
- {
-     deregister_eh_frames((uint8_t*)LoadAddr, Size);
- }
-+#endif
- 
- }
- 
-diff --git a/src/cgutils.cpp b/src/cgutils.cpp
-index e955470276..ea20e20ef4 100644
---- a/src/cgutils.cpp
-+++ b/src/cgutils.cpp
-@@ -2391,7 +2391,7 @@ static void emit_signal_fence(void)
-                                       "~{memory}", true));
- #else
- #  if JL_LLVM_VERSION >= 30900
--    builder.CreateFence(AtomicOrdering::SequentiallyConsistent, SingleThread);
-+    builder.CreateFence(AtomicOrdering::SequentiallyConsistent, SyncScope::SingleThread);
- #  else
-     builder.CreateFence(SequentiallyConsistent, SingleThread);
- #  endif
-diff --git a/src/codegen.cpp b/src/codegen.cpp
-index 66b7d73a62..4858c0afe0 100644
---- a/src/codegen.cpp
-+++ b/src/codegen.cpp
-@@ -106,6 +106,7 @@
- #include <polly/RegisterPasses.h>
- #include <polly/ScopDetection.h>
- #endif
-+#include <llvm/ExecutionEngine/ExecutionEngine.h>
- #include "fix_llvm_assert.h"
- 
- using namespace llvm;
-@@ -1421,8 +1422,15 @@ uint64_t jl_get_llvm_fptr(llvm::Function *llvmf)
- {
-     uint64_t addr = getAddressForFunction(llvmf);
- #ifdef USE_ORCJIT
--    if (!addr)
-+    if (!addr) {
-+#if JL_LLVM_VERSION >= 50000
-+        if (auto exp_addr = jl_ExecutionEngine->findUnmangledSymbol(llvmf->getName()).getAddress()) {
-+            addr = exp_addr.get();
-+        }
-+#else
-         addr = jl_ExecutionEngine->findUnmangledSymbol(llvmf->getName()).getAddress();
-+#endif
-+    }
- #endif
-     return addr;
- }
-diff --git a/src/debuginfo.cpp b/src/debuginfo.cpp
-index 11ac809029..63cccbbada 100644
---- a/src/debuginfo.cpp
-+++ b/src/debuginfo.cpp
-@@ -29,6 +29,9 @@
- #else
- #include <llvm/ExecutionEngine/JITMemoryManager.h>
- #endif
-+#if JL_LLVM_VERSION >= 50000
-+#include <llvm/BinaryFormat/Magic.h>
-+#endif
- #include <llvm/Object/MachO.h>
- #include <llvm/Object/COFF.h>
- #if JL_LLVM_VERSION >= 30700
-@@ -38,6 +41,12 @@
- 
- using namespace llvm;
- 
-+#if JL_LLVM_VERSION >= 50000
-+using llvm_file_magic = file_magic;
-+#else
-+using llvm_file_magic = sys::fs::file_magic;
-+#endif
-+
- #include "julia.h"
- #include "julia_internal.h"
- #include "codegen_internal.h"
-@@ -1009,7 +1018,7 @@ openDebugInfo(StringRef debuginfopath, const debug_link_info &info)
- 
-     auto error_splitobj = object::ObjectFile::createObjectFile(
-             SplitFile.get().get()->getMemBufferRef(),
--            sys::fs::file_magic::unknown);
-+            llvm_file_magic::unknown);
-     if (!error_splitobj) {
- #if JL_LLVM_VERSION >= 30900
-         return error_splitobj.takeError();
-@@ -1181,13 +1190,13 @@ bool jl_dylib_DI_for_fptr(size_t pointer, const llvm::object::ObjectFile **obj,
-         std::unique_ptr<MemoryBuffer> membuf = MemoryBuffer::getMemBuffer(
-                 StringRef((const char *)fbase, msize), "", false);
-         auto origerrorobj = llvm::object::ObjectFile::createObjectFile(
--            membuf->getMemBufferRef(), sys::fs::file_magic::unknown);
-+            membuf->getMemBufferRef(), llvm_file_magic::unknown);
- #elif JL_LLVM_VERSION >= 30500
-         MemoryBuffer *membuf = MemoryBuffer::getMemBuffer(
-             StringRef((const char *)fbase, msize), "", false);
-         std::unique_ptr<MemoryBuffer> buf(membuf);
-         auto origerrorobj = llvm::object::ObjectFile::createObjectFile(
--            buf, sys::fs::file_magic::unknown);
-+            buf, llvm_file_magic::unknown);
- #else
-         MemoryBuffer *membuf = MemoryBuffer::getMemBuffer(
-             StringRef((const char *)fbase, msize), "", false);
-diff --git a/src/disasm.cpp b/src/disasm.cpp
-index 2e30877a53..766f726303 100644
---- a/src/disasm.cpp
-+++ b/src/disasm.cpp
-@@ -28,8 +28,13 @@
- 
- #include "llvm-version.h"
- #include <llvm/Object/ObjectFile.h>
-+#if JL_LLVM_VERSION >= 50000
-+#include <llvm/BinaryFormat/MachO.h>
-+#include <llvm/BinaryFormat/COFF.h>
-+#else
- #include <llvm/Support/MachO.h>
- #include <llvm/Support/COFF.h>
-+#endif
- #include <llvm/MC/MCInst.h>
- #include <llvm/MC/MCStreamer.h>
- #include <llvm/MC/MCSubtargetInfo.h>
-diff --git a/src/jitlayers.cpp b/src/jitlayers.cpp
-index b049c5da6d..d9ff7a9976 100644
---- a/src/jitlayers.cpp
-+++ b/src/jitlayers.cpp
-@@ -53,7 +53,6 @@ namespace llvm {
- #endif
- 
- #include <llvm/Transforms/Utils/Cloning.h>
--#include <llvm/ExecutionEngine/JITEventListener.h>
- 
- // target support
- #include <llvm/ADT/Triple.h>
-@@ -364,68 +363,76 @@ JL_DLLEXPORT void ORCNotifyObjectEmitted(JITEventListener *Listener,
-                                          const RuntimeDyld::LoadedObjectInfo &L,
-                                          RTDyldMemoryManager *memmgr);
- 
-+template <typename ObjT, typename LoadResult>
-+void JuliaOJIT::DebugObjectRegistrar::registerObject(RTDyldObjHandleT H, const ObjT &Object,
-+                                                     const LoadResult &LO)
-+{
-+    OwningBinary<object::ObjectFile> SavedObject = LO->getObjectForDebug(*Object);
-+
-+    // If the debug object is unavailable, save (a copy of) the original object
-+    // for our backtraces
-+    if (!SavedObject.getBinary()) {
-+        // This is unfortunate, but there doesn't seem to be a way to take
-+        // ownership of the original buffer
-+        auto NewBuffer = MemoryBuffer::getMemBufferCopy(Object->getData(),
-+                                                        Object->getFileName());
-+        auto NewObj = ObjectFile::createObjectFile(NewBuffer->getMemBufferRef());
-+        assert(NewObj);
-+        SavedObject = OwningBinary<object::ObjectFile>(std::move(*NewObj),
-+                                                       std::move(NewBuffer));
-+    }
-+    else {
-+        NotifyGDB(SavedObject);
-+    }
-+
-+    SavedObjects.push_back(std::move(SavedObject));
-+
-+    ORCNotifyObjectEmitted(JuliaListener.get(), *Object,
-+                           *SavedObjects.back().getBinary(),
-+                           *LO, JIT.MemMgr.get());
-+
-+    // record all of the exported symbols defined in this object
-+    // in the primary hash table for the enclosing JIT
-+    for (auto &Symbol : Object->symbols()) {
-+        auto Flags = Symbol.getFlags();
-+        if (Flags & object::BasicSymbolRef::SF_Undefined)
-+            continue;
-+        if (!(Flags & object::BasicSymbolRef::SF_Exported))
-+            continue;
-+        auto NameOrError = Symbol.getName();
-+        assert(NameOrError);
-+        auto Name = NameOrError.get();
-+        auto Sym = JIT.CompileLayer.findSymbolIn(H, Name, true);
-+        assert(Sym);
-+        // note: calling getAddress here eagerly finalizes H
-+        // as an alternative, we could store the JITSymbol instead
-+        // (which would present a lazy-initializer functor interface instead)
-+#if JL_LLVM_VERSION >= 50000
-+        JIT.LocalSymbolTable[Name] = (void*)(uintptr_t)cantFail(Sym.getAddress());
-+#else
-+        JIT.LocalSymbolTable[Name] = (void*)(uintptr_t)Sym.getAddress();
-+#endif
-+    }
-+}
-+
- // TODO: hook up RegisterJITEventListener, instead of hard-coding the GDB and JuliaListener targets
- template <typename ObjSetT, typename LoadResult>
--void JuliaOJIT::DebugObjectRegistrar::operator()(RTDyldObjectLinkingLayerBase::ObjSetHandleT H,
-+void JuliaOJIT::DebugObjectRegistrar::operator()(RTDyldObjHandleT H,
-                 const ObjSetT &Objects, const LoadResult &LOS)
- {
--#if JL_LLVM_VERSION < 30800
--    notifyObjectLoaded(JIT.MemMgr, H);
--#endif
-+#if JL_LLVM_VERSION >= 50000
-+    registerObject(H, Objects->getBinary(),
-+                   static_cast<const RuntimeDyld::LoadedObjectInfo*>(&LOS));
-+#else
-     auto oit = Objects.begin();
-     auto lit = LOS.begin();
-     for (; oit != Objects.end(); ++oit, ++lit) {
--#if JL_LLVM_VERSION >= 30900
-         const auto &Object = (*oit)->getBinary();
--#else
--        auto &Object = *oit;
--#endif
-         auto &LO = *lit;
--
--        OwningBinary<object::ObjectFile> SavedObject = LO->getObjectForDebug(*Object);
--
--        // If the debug object is unavailable, save (a copy of) the original object
--        // for our backtraces
--        if (!SavedObject.getBinary()) {
--            // This is unfortunate, but there doesn't seem to be a way to take
--            // ownership of the original buffer
--            auto NewBuffer = MemoryBuffer::getMemBufferCopy(Object->getData(),
--                                                            Object->getFileName());
--            auto NewObj = ObjectFile::createObjectFile(NewBuffer->getMemBufferRef());
--            assert(NewObj);
--            SavedObject = OwningBinary<object::ObjectFile>(std::move(*NewObj),
--                                                           std::move(NewBuffer));
--        }
--        else {
--            NotifyGDB(SavedObject);
--        }
--
--        SavedObjects.push_back(std::move(SavedObject));
--
--        ORCNotifyObjectEmitted(JuliaListener.get(),
--                *Object,
--                *SavedObjects.back().getBinary(),
--                *LO, JIT.MemMgr);
--
--        // record all of the exported symbols defined in this object
--        // in the primary hash table for the enclosing JIT
--        for (auto &Symbol : Object->symbols()) {
--            auto Flags = Symbol.getFlags();
--            if (Flags & object::BasicSymbolRef::SF_Undefined)
--                continue;
--            if (!(Flags & object::BasicSymbolRef::SF_Exported))
--                continue;
--            auto NameOrError = Symbol.getName();
--            assert(NameOrError);
--            auto Name = NameOrError.get();
--            auto Sym = JIT.CompileLayer.findSymbolIn(H, Name, true);
--            assert(Sym);
--            // note: calling getAddress here eagerly finalizes H
--            // as an alternative, we could store the JITSymbol instead
--            // (which would present a lazy-initializer functor interface instead)
--            JIT.LocalSymbolTable[Name] = (void*)(uintptr_t)Sym.getAddress();
--        }
-+        
-+        registerObject(H, Object, LO);
-     }
-+#endif
- }
- 
- void JuliaOJIT::DebugObjectRegistrar::NotifyGDB(OwningBinary<object::ObjectFile> &DebugObj)
-@@ -447,42 +454,46 @@ void JuliaOJIT::DebugObjectRegistrar::NotifyGDB(OwningBinary<object::ObjectFile>
-     }
- }
- 
-+object::OwningBinary<object::ObjectFile> JuliaOJIT::CompilerT::operator()(Module &M)
-+{
-+    JL_TIMING(LLVM_OPT);
-+    jit.PM.run(M);
-+    std::unique_ptr<MemoryBuffer> ObjBuffer(
-+        new ObjectMemoryBuffer(std::move(jit.ObjBufferSV)));
-+    auto Obj = object::ObjectFile::createObjectFile(ObjBuffer->getMemBufferRef());
-+
-+    if (!Obj) {
-+#if JL_LLVM_VERSION >= 50000
-+        M.print(llvm::dbgs(), nullptr, false, true);
-+#else
-+        M.dump();
-+#endif
-+        std::string Buf;
-+        raw_string_ostream OS(Buf);
-+        logAllUnhandledErrors(Obj.takeError(), OS, "");
-+        OS.flush();
-+        llvm::report_fatal_error("FATAL: Unable to compile LLVM Module: '" + Buf + "'\n"
-+                                 "The module's content was printed above. Please file a bug report");
-+    }
-+
-+    return OwningObj(std::move(*Obj), std::move(ObjBuffer));
-+}
-+
- JuliaOJIT::JuliaOJIT(TargetMachine &TM)
-   : TM(TM),
-     DL(TM.createDataLayout()),
-     ObjStream(ObjBufferSV),
-     MemMgr(createRTDyldMemoryManager()),
--    ObjectLayer(DebugObjectRegistrar(*this)),
--    CompileLayer(
--            ObjectLayer,
--            [this](Module &M) {
--                JL_TIMING(LLVM_OPT);
--                PM.run(M);
--                std::unique_ptr<MemoryBuffer> ObjBuffer(
--                    new ObjectMemoryBuffer(std::move(ObjBufferSV)));
--                auto Obj = object::ObjectFile::createObjectFile(ObjBuffer->getMemBufferRef());
--
--                if (!Obj) {
-+    registrar(*this),
-+    ObjectLayer(
- #if JL_LLVM_VERSION >= 50000
--                    M.print(llvm::dbgs(), nullptr, false, true);
--#else
--                    M.dump();
-+        [&] { return MemMgr; },
- #endif
--#if JL_LLVM_VERSION >= 30900
--                    std::string Buf;
--                    raw_string_ostream OS(Buf);
--                    logAllUnhandledErrors(Obj.takeError(), OS, "");
--                    OS.flush();
--                    llvm::report_fatal_error("FATAL: Unable to compile LLVM Module: '" + Buf + "'\n"
--                        "The module's content was printed above. Please file a bug report");
--#else
--                    llvm::report_fatal_error("FATAL: Unable to compile LLVM Module.\n"
--                        "The module's content was printed above. Please file a bug report");
--#endif
--                }
--
--                return OwningObj(std::move(*Obj), std::move(ObjBuffer));
--            }
-+        std::ref(registrar)
-+        ),
-+    CompileLayer(
-+            ObjectLayer,
-+            CompilerT(this)
-         )
- {
-     if (!jl_generating_output()) {
-@@ -581,10 +592,14 @@ void JuliaOJIT::addModule(std::unique_ptr<Module> M)
-                       },
-                       [](const std::string &S) { return nullptr; }
-                     );
-+#if JL_LLVM_VERSION >= 50000
-+    auto modset = cantFail(CompileLayer.addModule(std::move(M), std::move(Resolver)));
-+#else
-     SmallVector<std::unique_ptr<Module>,1> Ms;
-     Ms.push_back(std::move(M));
--    auto modset = CompileLayer.addModuleSet(std::move(Ms), MemMgr,
-+    auto modset = CompileLayer.addModuleSet(std::move(Ms), MemMgr.get(),
-                                             std::move(Resolver));
-+#endif
-     // Force LLVM to emit the module so that we can register the symbols
-     // in our lookup table.
-     CompileLayer.emitAndFinalize(modset);
-@@ -592,7 +607,11 @@ void JuliaOJIT::addModule(std::unique_ptr<Module> M)
- 
- void JuliaOJIT::removeModule(ModuleHandleT H)
- {
-+#if JL_LLVM_VERSION >= 50000
-+    CompileLayer.removeModule(H);
-+#else
-     CompileLayer.removeModuleSet(H);
-+#endif
- }
- 
- JL_JITSymbol JuliaOJIT::findSymbol(const std::string &Name, bool ExportedSymbolsOnly)
-@@ -615,12 +634,22 @@ JL_JITSymbol JuliaOJIT::findUnmangledSymbol(const std::string Name)
- 
- uint64_t JuliaOJIT::getGlobalValueAddress(const std::string &Name)
- {
-+#if JL_LLVM_VERSION >= 50000
-+    auto addr = findSymbol(getMangledName(Name), false).getAddress();
-+    return addr ? addr.get() : 0;
-+#else
-     return findSymbol(getMangledName(Name), false).getAddress();
-+#endif
- }
- 
- uint64_t JuliaOJIT::getFunctionAddress(const std::string &Name)
- {
-+#if JL_LLVM_VERSION >= 50000
-+    auto addr = findSymbol(getMangledName(Name), false).getAddress();
-+    return addr ? addr.get() : 0;
-+#else
-     return findSymbol(getMangledName(Name), false).getAddress();
-+#endif
- }
- 
- Function *JuliaOJIT::FindFunctionNamed(const std::string &Name)
-diff --git a/src/jitlayers.h b/src/jitlayers.h
-index 02a38275d6..8aaff1f969 100644
---- a/src/jitlayers.h
-+++ b/src/jitlayers.h
-@@ -26,8 +26,8 @@
- #include <llvm/ExecutionEngine/JITMemoryManager.h>
- #include <llvm/ExecutionEngine/Interpreter.h>
- #include <llvm/ExecutionEngine/ExecutionEngine.h>
--#include <llvm/ExecutionEngine/JITEventListener.h>
- #endif
-+#include <llvm/ExecutionEngine/JITEventListener.h>
- 
- #if JL_LLVM_VERSION >= 30700
- #include "llvm/IR/LegacyPassManager.h"
-@@ -170,12 +170,9 @@ typedef orc::JITSymbol JL_JITSymbol;
- typedef RuntimeDyld::SymbolInfo JL_SymbolInfo;
- #endif
- #if JL_LLVM_VERSION >= 50000
--using orc::RTDyldObjectLinkingLayerBase;
--using orc::RTDyldObjectLinkingLayer;
-+using RTDyldObjHandleT = orc::RTDyldObjectLinkingLayerBase::ObjHandleT;
- #else
--using RTDyldObjectLinkingLayerBase = orc::ObjectLinkingLayerBase;
--template <typename NotifyLoadedFtor>
--using RTDyldObjectLinkingLayer = orc::ObjectLinkingLayer<NotifyLoadedFtor>;
-+using RTDyldObjHandleT = orc::ObjectLinkingLayerBase::ObjSetHandleT;
- #endif
- 
- class JuliaOJIT {
-@@ -185,19 +182,36 @@ class JuliaOJIT {
-     public:
-         DebugObjectRegistrar(JuliaOJIT &JIT);
-         template <typename ObjSetT, typename LoadResult>
--        void operator()(RTDyldObjectLinkingLayerBase::ObjSetHandleT H, const ObjSetT &Objects,
-+        void operator()(RTDyldObjHandleT H, const ObjSetT &Objects,
-                         const LoadResult &LOS);
-     private:
-+        template <typename ObjT, typename LoadResult>
-+        void registerObject(RTDyldObjHandleT H, const ObjT &Object, const LoadResult &LO);
-         void NotifyGDB(object::OwningBinary<object::ObjectFile> &DebugObj);
-         std::vector<object::OwningBinary<object::ObjectFile>> SavedObjects;
-         std::unique_ptr<JITEventListener> JuliaListener;
-         JuliaOJIT &JIT;
-     };
- 
-+    struct CompilerT {
-+        CompilerT(JuliaOJIT *pjit)
-+            : jit(*pjit)
-+        {}
-+        object::OwningBinary<object::ObjectFile> operator()(Module &M);
-+    private:
-+        JuliaOJIT &jit;
-+    };
-+
- public:
--    typedef RTDyldObjectLinkingLayer<DebugObjectRegistrar> ObjLayerT;
-+#if JL_LLVM_VERSION >= 50000
-+    typedef orc::RTDyldObjectLinkingLayer ObjLayerT;
-+    typedef orc::IRCompileLayer<ObjLayerT,CompilerT> CompileLayerT;
-+    typedef CompileLayerT::ModuleHandleT ModuleHandleT;
-+#else
-+    typedef orc::ObjectLinkingLayer<std::reference_wrapper<DebugObjectRegistrar>> ObjLayerT;
-     typedef orc::IRCompileLayer<ObjLayerT> CompileLayerT;
-     typedef CompileLayerT::ModuleSetHandleT ModuleHandleT;
-+#endif
-     typedef StringMap<void*> SymbolTableT;
-     typedef object::OwningBinary<object::ObjectFile> OwningObj;
- 
-@@ -229,7 +243,8 @@ private:
-     raw_svector_ostream ObjStream;
-     legacy::PassManager PM;
-     MCContext *Ctx;
--    RTDyldMemoryManager *MemMgr;
-+    std::shared_ptr<RTDyldMemoryManager> MemMgr;
-+    DebugObjectRegistrar registrar;
-     ObjLayerT ObjectLayer;
-     CompileLayerT CompileLayer;
-     SymbolTableT GlobalSymbolTable;



More information about the arch-commits mailing list