diff options
Diffstat (limited to 'dev-lang/julia/files/julia-1.6.5-llvm_13_compat_part_1.patch')
-rw-r--r-- | dev-lang/julia/files/julia-1.6.5-llvm_13_compat_part_1.patch | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/dev-lang/julia/files/julia-1.6.5-llvm_13_compat_part_1.patch b/dev-lang/julia/files/julia-1.6.5-llvm_13_compat_part_1.patch deleted file mode 100644 index 1398be7ec873..000000000000 --- a/dev-lang/julia/files/julia-1.6.5-llvm_13_compat_part_1.patch +++ /dev/null @@ -1,172 +0,0 @@ -This patch is from the julialang repository: - https://github.com/JuliaLang/julia/commit/677ce6d3.patch -but reference comes form ARCH Linux juia package - https://github.com/archlinux/svntogit-community/tree/packages/julia/trunk - -From 677ce6d3adc2f70886f72795b0e5c739e75730ee Mon Sep 17 00:00:00 2001 -From: Valentin Churavy <v.churavy@gmail.com> -Date: Sat, 28 Aug 2021 16:48:32 +0200 -Subject: [PATCH] [LLVM] Adapt to LLVM 13 changes - ---- - src/cgutils.cpp | 8 +++++++- - src/codegen.cpp | 2 +- - src/disasm.cpp | 8 ++++++++ - src/jitlayers.cpp | 7 +++++++ - src/llvm-late-gc-lowering.cpp | 5 +++-- - src/llvm-multiversioning.cpp | 5 +++++ - src/llvm-remove-addrspaces.cpp | 8 ++++++++ - 7 files changed, 39 insertions(+), 4 deletions(-) - -diff --git a/src/cgutils.cpp b/src/cgutils.cpp -index 4e9917b6b078..928e1a07b2f1 100644 ---- a/src/cgutils.cpp -+++ b/src/cgutils.cpp -@@ -2757,8 +2757,14 @@ static jl_value_t *static_constant_instance(Constant *constant, jl_value_t *jt) - size_t nargs; - if (const auto *CC = dyn_cast<ConstantAggregate>(constant)) - nargs = CC->getNumOperands(); -- else if (const auto *CAZ = dyn_cast<ConstantAggregateZero>(constant)) -+ else if (const auto *CAZ = dyn_cast<ConstantAggregateZero>(constant)) { -+#if JL_LLVM_VERSION >= 130000 -+ // SVE: Elsewhere we use `getMinKownValue` -+ nargs = CAZ->getElementCount().getFixedValue(); -+#else - nargs = CAZ->getNumElements(); -+#endif -+ } - else if (const auto *CDS = dyn_cast<ConstantDataSequential>(constant)) - nargs = CDS->getNumElements(); - else -diff --git a/src/codegen.cpp b/src/codegen.cpp -index 5cc9f66ffaef..9000513151fe 100644 ---- a/src/codegen.cpp -+++ b/src/codegen.cpp -@@ -7394,7 +7394,7 @@ static std::pair<std::unique_ptr<Module>, jl_llvm_functions_t> - #endif - continue; - } -- assert(find(pred_begin(PhiBB), pred_end(PhiBB), FromBB) != pred_end(PhiBB)); // consistency check -+ assert(std::find(pred_begin(PhiBB), pred_end(PhiBB), FromBB) != pred_end(PhiBB)); // consistency check - TerminatorInst *terminator = FromBB->getTerminator(); - if (!terminator->getParent()->getUniqueSuccessor()) { - // Can't use `llvm::SplitCriticalEdge` here because -diff --git a/src/disasm.cpp b/src/disasm.cpp -index 6157873ad71c..589f618396ea 100644 ---- a/src/disasm.cpp -+++ b/src/disasm.cpp -@@ -857,8 +857,16 @@ static void jl_dump_asm_internal( - assert(MRI && "Unable to create target register info!"); - - std::unique_ptr<MCObjectFileInfo> MOFI(new MCObjectFileInfo()); -+#if JL_LLVM_VERSION >= 130000 -+ MCSubtargetInfo *MSTI = TheTarget->createMCSubtargetInfo(TheTriple.str(), cpu, features); -+ assert(MSTI && "Unable to create subtarget info!"); -+ -+ MCContext Ctx(TheTriple, MAI.get(), MRI.get(), MSTI, &SrcMgr); -+ MOFI->initMCObjectFileInfo(Ctx, /* PIC */ false, /* LargeCodeModel */ false); -+#else - MCContext Ctx(MAI.get(), MRI.get(), MOFI.get(), &SrcMgr); - MOFI->InitMCObjectFileInfo(TheTriple, /* PIC */ false, Ctx); -+#endif - - // Set up Subtarget and Disassembler - std::unique_ptr<MCSubtargetInfo> -diff --git a/src/jitlayers.cpp b/src/jitlayers.cpp -index 60b1903aaa80..12497cadf491 100644 ---- a/src/jitlayers.cpp -+++ b/src/jitlayers.cpp -@@ -10,6 +10,9 @@ - #include <llvm/Analysis/TargetTransformInfo.h> - #include <llvm/ExecutionEngine/Orc/CompileUtils.h> - #include <llvm/ExecutionEngine/Orc/ExecutionUtils.h> -+#if JL_LLVM_VERSION >= 130000 -+#include <llvm/ExecutionEngine/Orc/ExecutorProcessControl.h> -+#endif - #include <llvm/Support/DynamicLibrary.h> - #include <llvm/Support/FormattedStream.h> - #include <llvm/Support/SmallVectorMemoryBuffer.h> -@@ -654,7 +657,11 @@ JuliaOJIT::JuliaOJIT(TargetMachine &TM, LLVMContext *LLVMCtx) - MemMgr(createRTDyldMemoryManager()), - JuliaListener(CreateJuliaJITEventListener()), - TSCtx(std::unique_ptr<LLVMContext>(LLVMCtx)), -+#if JL_LLVM_VERSION >= 130000 -+ ES(cantFail(orc::SelfExecutorProcessControl::Create())), -+#else - ES(), -+#endif - GlobalJD(ES.createBareJITDylib("JuliaGlobals")), - JD(ES.createBareJITDylib("JuliaOJIT")), - ObjectLayer( -diff --git a/src/llvm-late-gc-lowering.cpp b/src/llvm-late-gc-lowering.cpp -index 0aac7638be0d..db8b19bacea5 100644 ---- a/src/llvm-late-gc-lowering.cpp -+++ b/src/llvm-late-gc-lowering.cpp -@@ -709,7 +709,7 @@ void LateLowerGCFrame::LiftSelect(State &S, SelectInst *SI) { - else - Numbers[i] = Number; - } -- if (auto VTy = dyn_cast<VectorType>(SI->getType())) { -+ if (auto VTy = dyn_cast<FixedVectorType>(SI->getType())) { - if (NumRoots != Numbers.size()) { - // broadcast the scalar root number to fill the vector - assert(NumRoots == 1); -@@ -736,11 +736,12 @@ void LateLowerGCFrame::LiftPhi(State &S, PHINode *Phi) { - SmallVector<PHINode *, 2> lifted; - std::vector<int> Numbers; - unsigned NumRoots = 1; -- if (auto VTy = dyn_cast<VectorType>(Phi->getType())) { -+ if (auto VTy = dyn_cast<FixedVectorType>(Phi->getType())) { - NumRoots = VTy->getNumElements(); - Numbers.resize(NumRoots); - } - else { -+ // TODO: SVE - assert(isa<PointerType>(Phi->getType()) && "unimplemented"); - } - for (unsigned i = 0; i < NumRoots; ++i) { -diff --git a/src/llvm-multiversioning.cpp b/src/llvm-multiversioning.cpp -index 68081eb53d3a..a82600162fa9 100644 ---- a/src/llvm-multiversioning.cpp -+++ b/src/llvm-multiversioning.cpp -@@ -403,7 +403,12 @@ void CloneCtx::clone_function(Function *F, Function *new_f, ValueToValueMapTy &v - vmap[&*J] = &*DestI++; - } - SmallVector<ReturnInst*,8> Returns; -+#if JL_LLVM_VERSION >= 130000 -+ // We are cloning into the same module -+ CloneFunctionInto(new_f, F, vmap, CloneFunctionChangeType::GlobalChanges, Returns); -+#else - CloneFunctionInto(new_f, F, vmap, true, Returns); -+#endif - } - - // Clone all clone_all targets. Makes sure that the base targets are all available. -diff --git a/src/llvm-remove-addrspaces.cpp b/src/llvm-remove-addrspaces.cpp -index ada10c8d5f1f..7c6ef093fbce 100644 ---- a/src/llvm-remove-addrspaces.cpp -+++ b/src/llvm-remove-addrspaces.cpp -@@ -345,7 +345,11 @@ bool RemoveAddrspacesPass::runOnModule(Module &M) - for (auto MD : MDs) - NGV->addMetadata( - MD.first, -+#if JL_LLVM_VERSION >= 130000 -+ *MapMetadata(MD.second, VMap)); -+#else - *MapMetadata(MD.second, VMap, RF_MoveDistinctMDs)); -+#endif - - copyComdat(NGV, GV); - -@@ -372,7 +376,11 @@ bool RemoveAddrspacesPass::runOnModule(Module &M) - NF, - F, - VMap, -+#if JL_LLVM_VERSION >= 130000 -+ CloneFunctionChangeType::GlobalChanges, -+#else - /*ModuleLevelChanges=*/true, -+#endif - Returns, - "", - nullptr, |