Skip to content

Commit f7733f8

Browse files
authored
Merge pull request #28745 from JuliaLang/vc/6.0.1
upgrade to LLVM 6.0.1
2 parents 57b3497 + 8ba726e commit f7733f8

File tree

7 files changed

+61
-4
lines changed

7 files changed

+61
-4
lines changed

deps/Versions.make

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
LLVM_VER = 6.0.0
2-
LLVM_BB_REL = 6
1+
LLVM_VER = 6.0.1
2+
LLVM_BB_REL = 1
33
PCRE_VER = 10.30
44
DSFMT_VER = 2.2.3
55
LAPACK_VER = 3.5.0

deps/checksums/llvm-6.0.0.src.tar.xz/md5

-1
This file was deleted.

deps/checksums/llvm-6.0.0.src.tar.xz/sha512

-1
This file was deleted.
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
c88c98709300ce2c285391f387fecce0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9

deps/llvm.mk

+4
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,11 @@ LLVM_PATCH_PREV := $$(LLVM_SRC_DIR)/$1.patch-applied
385385
endef
386386

387387
ifeq ($(LLVM_VER_SHORT),6.0)
388+
ifeq ($(LLVM_VER_PATCH), 0)
388389
$(eval $(call LLVM_PATCH,llvm-D27629-AArch64-large_model_4.0))
390+
else
391+
$(eval $(call LLVM_PATCH,llvm-D27629-AArch64-large_model_6.0.1))
392+
endif
389393
$(eval $(call LLVM_PATCH,llvm-D34078-vectorize-fdiv))
390394
$(eval $(call LLVM_PATCH,llvm-6.0-NVPTX-addrspaces)) # NVPTX
391395
$(eval $(call LLVM_PATCH,llvm-D42262-jumpthreading-not-i1)) # remove for 7.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
From f76abe65e6d07fea5e838c4f8c9a9421c16debb0 Mon Sep 17 00:00:00 2001
2+
From: Valentin Churavy <[email protected]>
3+
Date: Thu, 5 Jul 2018 12:37:50 -0400
4+
Subject: [PATCH] Fix unwind info relocation with large code model on AArch64
5+
6+
---
7+
lib/MC/MCObjectFileInfo.cpp | 2 ++
8+
.../AArch64/ELF_ARM64_large-relocations.s | 20 +++++++++++++++++++
9+
2 files changed, 22 insertions(+)
10+
create mode 100644 test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_large-relocations.s
11+
12+
diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp
13+
index 328f000f37c..938b35f20d1 100644
14+
--- a/lib/MC/MCObjectFileInfo.cpp
15+
+++ b/lib/MC/MCObjectFileInfo.cpp
16+
@@ -291,6 +291,8 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) {
17+
break;
18+
case Triple::ppc64:
19+
case Triple::ppc64le:
20+
+ case Triple::aarch64:
21+
+ case Triple::aarch64_be:
22+
case Triple::x86_64:
23+
FDECFIEncoding = dwarf::DW_EH_PE_pcrel |
24+
(Large ? dwarf::DW_EH_PE_sdata8 : dwarf::DW_EH_PE_sdata4);
25+
diff --git a/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_large-relocations.s b/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_large-relocations.s
26+
new file mode 100644
27+
index 00000000000..66f28dabd79
28+
--- /dev/null
29+
+++ b/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_large-relocations.s
30+
@@ -0,0 +1,20 @@
31+
+# RUN: llvm-mc -triple=arm64-none-linux-gnu -large-code-model -filetype=obj -o %T/large-reloc.o %s
32+
+# RUN: llvm-rtdyld -triple=arm64-none-linux-gnu -verify -map-section large-reloc.o,.eh_frame=0x10000 -map-section large-reloc.o,.text=0xffff000000000000 -check=%s %T/large-reloc.o
33+
+# RUN-BE: llvm-mc -triple=aarch64_be-none-linux-gnu -large-code-model -filetype=obj -o %T/be-large-reloc.o %s
34+
+# RUN-BE: llvm-rtdyld -triple=aarch64_be-none-linux-gnu -verify -map-section be-large-reloc.o,.eh_frame=0x10000 -map-section be-large-reloc.o,.text=0xffff000000000000 -check=%s %T/be-large-reloc.o
35+
+
36+
+ .text
37+
+ .globl g
38+
+ .p2align 2
39+
+ .type g,@function
40+
+g:
41+
+ .cfi_startproc
42+
+ mov x0, xzr
43+
+ ret
44+
+ .Lfunc_end0:
45+
+ .size g, .Lfunc_end0-g
46+
+ .cfi_endproc
47+
+
48+
+# Skip the CIE and load the 8 bytes PC begin pointer.
49+
+# Assuming the CIE and the FDE length are both 4 bytes.
50+
+# rtdyld-check: *{8}(section_addr(large-reloc.o, .eh_frame) + (*{4}(section_addr(large-reloc.o, .eh_frame))) + 0xc) = g - (section_addr(large-reloc.o, .eh_frame) + (*{4}(section_addr(large-reloc.o, .eh_frame))) + 0xc)
51+
--
52+
2.18.0
53+

0 commit comments

Comments
 (0)