summaryrefslogtreecommitdiff
path: root/dev-lang/julia/files/julia-1.6.5-llvm_13_compat_part_1.patch
diff options
context:
space:
mode:
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.patch172
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,