Skip to content

Update to LLVM 9 #34418

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 28, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ else
JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libz
endif
ifeq ($(USE_LLVM_SHLIB),1)
JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM libLLVM-8
JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM libLLVM-9
endif

ifeq ($(USE_SYSTEM_LIBM),0)
Expand Down
15 changes: 14 additions & 1 deletion contrib/refresh_bb_tarballs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ TRIPLETS="i686-linux-gnu x86_64-linux-gnu aarch64-linux-gnu arm-linux-gnueabihf

# These are the projects currently using BinaryBuilder; both GCC-expanded and non-GCC-expanded:
BB_PROJECTS="gmp mbedtls libssh2 mpfr curl libgit2 pcre libuv unwind osxunwind dsfmt objconv p7zip zlib suitesparse openlibm"
BB_GCC_EXPANDED_PROJECTS="llvm openblas"
BB_GCC_EXPANDED_PROJECTS="openblas"
BB_CXX_EXPANDED_PROJECTS="llvm"

# If we've been given a project name, filter down to that one:
if [ -n "${1}" ]; then
Expand All @@ -25,6 +26,10 @@ if [ -n "${1}" ]; then
*${1}*) BB_GCC_EXPANDED_PROJECTS="${1}" ;;
*) BB_GCC_EXPANDED_PROJECTS="" ;;
esac
case "${BB_CXX_EXPANDED_PROJECTS}" in
*${1}*) BB_CXX_EXPANDED_PROJECTS="${1}" ;;
*) BB_CXX_EXPANDED_PROJECTS="" ;;
esac
fi

# Get "contrib/" directory path
Expand All @@ -45,4 +50,12 @@ for triplet in ${TRIPLETS}; do
make -C "${CONTRIB_DIR}/../deps" USE_BINARYBUILDER_${PROJ}=1 ${PROJ}_BB_TRIPLET=${triplet}-${libgfortran} BB_TRIPLET_CXXABI=${triplet} install-${proj}
done
done

for proj in ${BB_CXX_EXPANDED_PROJECTS}; do
PROJ="$(echo ${proj} | tr [a-z] [A-Z])"
for cxx in cxx03 cxx11; do
make -C "${CONTRIB_DIR}/../deps" USE_BINARYBUILDER_${PROJ}=1 ${PROJ}_BB_TRIPLET=${triplet}-${cxx} BB_TRIPLET_CXXABI=${triplet} distclean-${proj}
make -C "${CONTRIB_DIR}/../deps" USE_BINARYBUILDER_${PROJ}=1 ${PROJ}_BB_TRIPLET=${triplet}-${cxx} BB_TRIPLET_CXXABI=${triplet} install-${proj}
done
done
done
4 changes: 2 additions & 2 deletions deps/Versions.make
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
LLVM_VER = 8.0.1
LLVM_BB_REL = 4
LLVM_VER = 9.0.1
LLVM_BB_REL = 1
PCRE_VER = 10.31
PCRE_BB_REL = 0
DSFMT_VER = 2.2.3
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
509a8215cc883afe6adfb791a4ec40b7
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8a1e1ff41162c9b9a6630d04cdd3a9aabe8c171969a128848b6414d7ad307865baf407490f6e0322d86bcd6f574312a734e734c6ca5d004054664afc8c8c259a
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2eb84248919893f9daa838a9ce4bc2eb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5effd87fb355f3e93dd2df42e27d76cb8a3d20cd7e38f79c42974db866d2e46cb6e7c271fb0e1a9d67c6761281be79d05ef8a90820c130145663a41c1b362a24
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
abe674ed9256819e945b37d49c2c0679
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3f2e3f266a6a1f986f5fa9b01aa4524ef60dd71e98b413c641ad0b46ec31f10cb3bb54595462ec08bf0eaf846193edaeaffdb831b58848b5fb69d9aed5c61b6e
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
11b4b9c5a281cdfd01127b6c7073aee2
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
51e82536f12da9d0b71aeaf83140839763c19d3ce6293279a34a5a6051d79e72d484b987bfd7944e6610e63177cd8a4ca526d38c1f8d6dd3e17627d689419060
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
86e3a5b09f4e938a0361d938339d55ea
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
76d49bc8061cab3ce903467dd0587682b7e9d18c1a5c20792746157494b7859673b5784ac54469838723fcff1fdce6187f88d0e7a39dfa46c2132c2805c23040
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7a1ce901dbca098fbf9892b484ea477b
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
47d9b726c9b79f50f614775a49e051744f6bc3a0eb95addb09737928fc35929da7ae1281e694d834ee6a079e37e90c84620625194e88fc39fc4366028e39a395
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6f59c804a2806540f42d4bc1e1bbd786
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
36c0fd4e7ec4f75cb4b368ca02de4cd63868fbc022b7c3fb497fca4120186675d5728aede6da295f2c68f32921b95b8789b0cab0aecea7474228dd8076f29704
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d59056ddfd4fc13f2b59aa637e4e5268
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
db18ea5897fefaf5e58bf572e92cda01fa89c5afdaf807204050bddd06d62967f65c31e977b71428ee77c67be4772d51a1098e1d5af8a4c4458de42ad2dda103
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
69964c3205700e42247c4292101ae6f9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
66b98e4700f44c871214d1f8809fbdfc1f07246c81a40e913ab52ffe28355cd9f13d644239dadb72508a32a97e89c2e42a0d044781e1a4b152d6c700cc31dcfe
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5eb391e3eff4f882a05c1a9ea500db91
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2d5e23258b79905ca9fd3ab50b3817d1a2291e5102685d92b7f175766ec5220cc59dcefc5ac8d820b018b6646968514278531a08ea44a0b21a7fac4b17b3bf75
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
caff5232140df050c43d3291fc23a850
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
82ee19be2abea8f46e92e8624f935ee1387930a9bfddcdb66cc95b51e98072aecd2a1a54f997492c59feebc6c12efa759251eb5522e0525b529f3055cee335ba
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0c7257d9136b196cfb8511edaae243e0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dd0030b9207e7ec25204711beaa1aa9576d0557395b89b1c94122a6affdd30d48ba3f7bed4a24931488ee4c96ba193a7a067174e528cdb0b8b4292cd532b84c0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5ac01a6b669b9fc79cd3be19f30a1f6d
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
f93693a4ddb20696ad9faa3c35b774e94c529d1968f5151b6f658d7965a943d3c00e9b21fa2b21109df269b15221e8c009599d61f84fbc6e2d848ab04c6f895d
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
200d0d63deb3e7f7a17e6d8f173f5ce6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9d0ebf5b731674804c1c76b6139bc707a7a4a2adfad160e0eca76aaba31142e4aeb812b31546bb876abc562c99fd57274aa9e18bbecb12ba7b2844f82b178c91
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
91a92e41bd31dd706af06fd39f026d0e
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4bf4e616387174654d7d6bf2868813d338d530510b3a64921613516ed8a6a5fc4244d8175706e968371d65d447adbb9a2cb38c5e07b1ffc091c3217d168acd0d
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
225eb965af9cf8d30dd062343fdd5bed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
b5171dd20dc55cfbad3163bb19aa55005c4c07af6894cc2f74a36861c038e85e5d76017ec27e1ea85fcc7bc507f44724d6b10c0ecbbf92fafe68f248b2e53932
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1b28663a03fb6ffcd603d44cd46335e1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7c895d1d020a44b04f930b029777ff9deaefe36be7e45906b8325c467b62a861d7aaa5d54ce6b9411e575a4f24a8d9269d5725ec401cfadcd0d315e5185478a8
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d542b2986752b3b02445da8371bdc8ff
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
177ddf1f2e29fe0c1599aded2ccaca66f82ef1dd9fc8ecf6d586c7956f3716f81399f1b31517612d90c6ae69dcd81b4f547179cf2db63a57030da715e19cbb3d
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a2b638ed9e01a2204e512d6006130612
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8eca290b48aaaba0063bdce0fc13c0ddb6c10938984a7bba70ad9311e04e10814d0ace9272a09a5cba41fa1ed223508145fbf2a6f8012ccd9a501a2aad4080f4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c212eb9931602feccb4608daa223dae8
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0a820754579f89e517ac3986daa299563357ac6b0adac08ccce6ebcf059be215ef28032e106add7fab94c5c24600d8162023ae92b2614b0246184e4de498f6eb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
930bba4053117b0afdc54e00a59b1287
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ff1de084f12cc970de7eac7431b5489a3303e55a58408c56155f4547d6e0c5bbc26435da553cb92bf89efce31119d28c05fb6fc0a7ae64cf352feb946d53e327
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d06a01f98f0d8f4eac510b1d3293e9c2
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
98664251c1ae7fa25fa00c519b22e6a96c0cc4a9f3d6f3214e48d5309da7e9351c50e8e9789048d229840c868afff394683f661260b1e7dc801e8e8cc20d7c62
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9d0b56e1a4ee3a67905e6f53958373e5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ada2038b9f1b2c262273968a01a7c3617a282aa0fb666ebdbc8516fdf5304b778224068b5f1712d70cf81361cc0cf4048547f6fa445244dbe697c59c24283c89
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
df9d24edc883a031d1646581d5c6b006
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
539179ef2d5f6e8ff5f0da33b6e6a6375cfa4abbbf035423956bbf30323481866e04662b5dcfeb758b67111c61794afe4289a031f35d0e4886d7e5f4f5381f93
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e24182741d8d5b05e5a07164b9b8b17e
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6246f4341f73f6dc8d89655a92ba89f354c616e91045679c4ef0a1e4b0a85bf128f814a3b91c0866a6d1e354c7318721f8aff3bd9d803627b5fa552e54da525b
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5219c0d5edbc150b53a5a366789ea590
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
58f77b02321d910aaaa7a9a75d5a59e5dee026b0e2ffd4d0ac231048420a96b0f47441bda56d96480d77528559b79f6a81666ecb22633802ac1d6da513fb0d52
1 change: 1 addition & 0 deletions deps/checksums/llvm-9.0.1.src.tar.xz/md5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
31eb9ce73dd2a0f8dcab8319fb03f8fc
1 change: 1 addition & 0 deletions deps/checksums/llvm-9.0.1.src.tar.xz/sha512
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bfb6960a4dd1e18f4005f324f478a781c69e8ec7c20569d9b243fcb9372dc7733b254f26c683373537990cc9c109c78eaf0f65449629ee17caca1bce9b9ccccd
6 changes: 4 additions & 2 deletions deps/llvm.mk
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,8 @@ ifneq ($(LLVM_VER),svn)
ifeq (,$(findstring rc,$(LLVM_VER)))
ifeq ($(shell [ x"$(LLVM_VER)" = x"8.0.1" ]; echo $$?),0)
LLVM_SRC_URL := https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VER)
else ifeq ($(shell [ x"$(LLVM_VER)" = x"9.0.1" ]; echo $$?),0)
LLVM_SRC_URL := https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VER)
else
LLVM_SRC_URL := http://releases.llvm.org/$(LLVM_VER)
endif
Expand Down Expand Up @@ -493,13 +495,13 @@ update-llvm:
git pull --ff-only
endif
else # USE_BINARYBUILDER_LLVM
LLVM_BB_URL_BASE := https://github.com/staticfloat/LLVMBuilder/releases/download/v$(LLVM_VER)+$(LLVM_BB_REL)
LLVM_BB_URL_BASE := https://github.com/JuliaBinaryWrappers/LLVM_jll.jl/releases/download/LLVM-v$(LLVM_VER)+$(LLVM_BB_REL)
ifneq ($(BINARYBUILDER_LLVM_ASSERTS), 1)
LLVM_BB_NAME := LLVM.v$(LLVM_VER)
else
LLVM_BB_NAME := LLVM.asserts.v$(LLVM_VER)
endif

$(eval $(call bb-install,llvm,LLVM,true))
$(eval $(call bb-install,llvm,LLVM,false,true))

endif # USE_BINARYBUILDER_LLVM
5 changes: 2 additions & 3 deletions deps/tools/bb-install.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
# 4 cxx11) # signifies a cxx11 ABI dependency

# Auto-detect triplet once, create different versions that we use as defaults below for each BB install target
# This is much more efficient than launching `gcc` and `python` once for each BB install target.
BB_TRIPLET_LIBGFORTRAN_CXXABI := $(shell python $(JULIAHOME)/contrib/normalize_triplet.py $(or $(XC_HOST),$(XC_HOST),$(BUILD_MACHINE)) "$(shell $(FC) --version | head -1)" "$(shell echo '\#include <string>' | $(CXX) $(CXXFLAGS) -x c++ -dM -E - | grep _GLIBCXX_USE_CXX11_ABI | awk '{ print $$3 }' )")
BB_TRIPLET_LIBGFORTRAN_CXXABI := $(shell python $(JULIAHOME)/contrib/normalize_triplet.py $(or $(XC_HOST),$(XC_HOST),$(BUILD_MACHINE)) "$(shell $(FC) --version | head -1)" "$(or $(shell echo '\#include <string>' | $(CXX) $(CXXFLAGS) -x c++ -dM -E - | grep _GLIBCXX_USE_CXX11_ABI | awk '{ print $$3 }' ),1)")
BB_TRIPLET_LIBGFORTRAN := $(subst $(SPACE),-,$(filter-out cxx%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI))))
BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRANABI_CXXABI))))
BB_TRIPLET_CXXABI := $(subst $(SPACE),-,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI))))
BB_TRIPLET := $(subst $(SPACE),-,$(filter-out cxx%,$(filter-out libgfortran%,$(subst -,$(SPACE),$(BB_TRIPLET_LIBGFORTRAN_CXXABI)))))

define bb-install
Expand Down
11 changes: 11 additions & 0 deletions src/clangsa/GCChecker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,11 @@ namespace {
#else
void checkEndFunction(CheckerContext &Ctx) const;
#endif
#if LLVM_VERSION_MAJOR >= 9
bool evalCall(const CallEvent &Call, CheckerContext &C) const;
#else
bool evalCall(const CallExpr *CE, CheckerContext &C) const;
#endif
void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
void checkPostCall(const CallEvent &Call, CheckerContext &C) const;
void checkPostStmt(const CStyleCastExpr *CE, CheckerContext &C) const;
Expand Down Expand Up @@ -1216,10 +1220,17 @@ void GCChecker::checkPreCall(const CallEvent &Call, CheckerContext &C) const {
}
}

#if LLVM_VERSION_MAJOR >= 9
bool GCChecker::evalCall(const CallEvent &Call,
#else
bool GCChecker::evalCall(const CallExpr *CE,
#endif
CheckerContext &C) const {
// These checks should have no effect on the surrounding environment
// (globals should not be invalidated, etc), hence the use of evalCall.
#if LLVM_VERSION_MAJOR >= 9
const CallExpr *CE = dyn_cast<CallExpr>(Call.getOriginExpr());
#endif
unsigned CurrentDepth = C.getState()->get<GCDepth>();
auto name = C.getCalleeName(CE);
SValExplainer Ex(C.getASTContext());
Expand Down