summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
rL306379
commit
7df06519765b14e1b08d7034c82c45a0a653eb25
Author: Chandler Carruth <chandlerc@gmail.com>
Date: Tue Jun 27 08:32:03 2017 +0000
[SROA] Fix PR32902 by more carefully propagating !nonnull metadata.
This is based heavily on the work done ni D34285. I mostly wanted to do
test cleanup for the author to save them some time, but I had a really
hard time understanding why it was so hard to write better test cases
for these issues.
The problem is that because SROA does a second rewrite of the loads and
because we *don't* propagate !nonnull for non-pointer loads, we first
introduced invalid !nonnull metadata and then stripped it back off just
in time to avoid most ways of this PR manifesting. Moving to the more
careful utility only fixes this by changing the predicate to look at the
new load's type rather than the target type. However, that *does* fix
the bug, and the utility is much nicer including adding range metadata
to model the nonnull property after a conversion to an integer.
However, we have bigger problems because we don't actually propagate
*range* metadata, and the utility to do this extracted from instcombine
isn't really in good shape to do this currently. It *only* handles the
case of copying range metadata from an integer load to a pointer load.
It doesn't even handle the trivial cases of propagating from one integer
load to another when they are the same width! This utility will need to
be beefed up prior to using in this location to get the metadata to
fully survive.
And even then, we need to go and teach things to turn the range metadata
into an assume the way we do with nonnull so that when we *promote* an
integer we don't lose the information.
All of this will require a new test case that looks kind-of like
`preserve-nonnull.ll` does here but focuses on range metadata. It will
also likely require more testing because it needs to correctly handle
changes to the integer width, especially as SROA actively tries to
change the integer width!
Last but not least, I'm a little worried about hooking the range
metadata up here because the instcombine logic for converting from
a range metadata *to* a nonnull metadata node seems broken in the face
of non-zero address spaces where null is not mapped to the integer `0`.
So that probably needs to get fixed with test cases both in SROA and in
instcombine to cover it.
But this *does* extract the core PR fix from D34285 of preventing the
!nonnull metadata from being propagated in a broken state just long
enough to feed into promotion and crash value tracking.
On D34285 there is some discussion of zero-extend handling because it
isn't necessary. First, the new load size covers all of the non-undef
(ie, possibly initialized) bits. This may even extend past the original
alloca if loading those bits could produce valid data. The only way its
valid for us to zero-extend an integer load in SROA is if the original
code had a zero extend or those bits were undef. And we get to assume
things like undef *never* satifies nonnull, so non undef bits can
participate here. No need to special case the zero-extend handling, it
just falls out correctly.
The original credit goes to Ariel Ben-Yehuda! I'm mostly landing this to
save a few rounds of trivial edits fixing style issues and test case
formulation.
Differental Revision: D34285
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306379
91177308-0d34-0410-b5e6-
96231b3b80d8
Gbp-Pq: Name rL306379.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
rL306358
commit
156cc49e505986a1659adaa3a0b5a070372377c8
Author: Chandler Carruth <chandlerc@gmail.com>
Date: Tue Jun 27 03:08:45 2017 +0000
[SROA] Further test cleanup and add a test for the actual propagation of
the nonnull attribute distinct from rewriting it into an assume.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306358
91177308-0d34-0410-b5e6-
96231b3b80d8
Gbp-Pq: Name rL306358.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
rL306353
commit
477bd758b48cb96477d3dd4cf3b36bf2706e8c1d
Author: Chandler Carruth <chandlerc@gmail.com>
Date: Tue Jun 27 02:23:15 2017 +0000
[SROA] Clean up a test case a bit prior to adding more testing for
nonnull as part of fixing PR32902.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306353
91177308-0d34-0410-b5e6-
96231b3b80d8
Gbp-Pq: Name rL306353.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
rL306267
commit
5a057dc8edbb63887f8c611dd8ddf1b76997f07c
Author: Chandler Carruth <chandlerc@gmail.com>
Date: Mon Jun 26 03:31:31 2017 +0000
[InstCombine] Factor the logic for propagating !nonnull and !range
metadata out of InstCombine and into helpers.
NFC, this just exposes the logic used by InstCombine when propagating
metadata from one load instruction to another. The plan is to use this
in SROA to address PR32902.
If anyone has better ideas about how to factor this or name variables,
I'm all ears, but this seemed like a pretty good start and lets us make
progress on the PR.
This is based on a patch by Ariel Ben-Yehuda (D34285).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306267
91177308-0d34-0410-b5e6-
96231b3b80d8
Gbp-Pq: Name rL306267.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
rL298540
commit
2b66aeed20b61d42cd2782b94d5419c6faca49a1
Author: Luqman Aden <me@luqman.ca>
Date: Wed Mar 22 19:16:39 2017 +0000
Preserve nonnull metadata on Loads through SROA & mem2reg.
Summary:
https://llvm.org/bugs/show_bug.cgi?id=31142 :
SROA was dropping the nonnull metadata on loads from allocas that got optimized out. This patch simply preserves nonnull metadata on loads through SROA and mem2reg.
Reviewers: chandlerc, efriedma
Reviewed By: efriedma
Subscribers: hfinkel, spatel, efriedma, arielb1, davide, llvm-commits
Differential Revision: https://reviews.llvm.org/D27114
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298540
91177308-0d34-0410-b5e6-
96231b3b80d8
Gbp-Pq: Name rL298540.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
rL305193-backport
commit
2b622a393ce80c6157d32a50bf67d6b830729469
Author: Than McIntosh <thanm@google.com>
Date: Mon Jun 12 14:56:02 2017 +0000
StackColoring: smarter check for slot overlap
Summary:
The old check for slot overlap treated 2 slots `S` and `T` as
overlapping if there existed a CFG node in which both of the slots could
possibly be active. That is overly conservative and caused stack blowups
in Rust programs. Instead, check whether there is a single CFG node in
which both of the slots are possibly active *together*.
Fixes PR32488.
Patch by Ariel Ben-Yehuda <ariel.byd@gmail.com>
Reviewers: thanm, nagisa, llvm-commits, efriedma, rnk
Reviewed By: thanm
Subscribers: dotdash
Differential Revision: https://reviews.llvm.org/D31583
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305193
91177308-0d34-0410-b5e6-
96231b3b80d8
Gbp-Pq: Name rL305193-backport.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
armhf-bitfield
===================================================================
Gbp-Pq: Name armhf-bitfield.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
pr81066
# DP; Fix PR sanitizer/81066, taken from the gcc-7-branch.
libsanitizer/
2017-07-17 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2017-07-14 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/81066
* sanitizer_common/sanitizer_linux.h: Cherry-pick upstream r307969.
* sanitizer_common/sanitizer_linux.cc: Likewise.
* sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Likewise.
* tsan/tsan_platform_linux.cc: Likewise.
Gbp-Pq: Name pr81066.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
ftfbs-gcc
===================================================================
Gbp-Pq: Name ftfbs-gcc.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
add_symbols_versioning
This patch adds a very simple linker script to version the lib's symbols
and thus trying to avoid crashes if an application loads two different
LLVM versions (as long as they do not share data between them).
Note that we deliberately *don't* make LLVM_3.9 depend on LLVM_3.8:
they're incompatible and the whole point of this patch is
to tell the linker that.
Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
Author: Lisandro Damían Nicanor Pérez Meyer <lisandro@debian.org>
Bug-Debian: https://bugs.debian.org/848368
Gbp-Pq: Name add_symbols_versioning.patch
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
pthread-link
1;4601;0c===================================================================
Gbp-Pq: Name pthread-link.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
silent-amdgpu-test-failing
===================================================================
Gbp-Pq: Name silent-amdgpu-test-failing.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
silent-test-failing-codeverage
===================================================================
Gbp-Pq: Name silent-test-failing-codeverage.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
lldb-missing-install
===================================================================
Gbp-Pq: Name lldb-missing-install.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
lldb-addversion-suffix-to-llvm-server-exec
lldb-server exec users always /usr/bin/lldb-server. Server is required
for any debugging with lldb which makes it unusable unless default version
package has been installed. Small changes to code and debian/rules allows
a workaround for lldb-server start up.
To use this one needs to add cmake defination during configure. eg
-DDEBIAN_VERSION_SUFFIX=-$(LLVM_VERSION)
Better implementation would be to use /usr/share/llvm-$(VERSION)/bin but
that change seems to require a big change to the path handling code
which could then break something else.
This probably should have upstream bug but I couldn't find any existing report.
Gbp-Pq: Name lldb-addversion-suffix-to-llvm-server-exec.patch
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
clang-fix-cmpxchg8-detection-on-i386
libcxx atomic tests for old i386 fail with wrong Atomic inline width.
cmpxchg8b instruction is required for 8 byte atomics that clang was
assuming.
Too bad _GCC_ATOMIC_LLONG_LOCK_FREE 2 isn't supported even with this change
because llvm doesn't support unaligned atomic compare and exchange operation.
Fallback calls to libatomic.so should handle long long lock free but clang
can't tell program if libatomic is always lock free.
Related bug: https://llvm.org/bugs/show_bug.cgi?id=19355
Gbp-Pq: Name clang-fix-cmpxchg8-detection-on-i386.patch
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
fix-scan-view-path
===================================================================
Gbp-Pq: Name fix-scan-view-path.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
clang-tidy-run-bin
===================================================================
Gbp-Pq: Name clang-tidy-run-bin.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
disable-llvm-symbolizer-test
Gbp-Pq: Name disable-llvm-symbolizer-test.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
silent-gold-utils
Gbp-Pq: Name silent-gold-utils.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
disable-source-interleave
===================================================================
Gbp-Pq: Name disable-source-interleave.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
lldb-link-atomic-cmake
Gbp-Pq: Name lldb-link-atomic-cmake.patch
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
fix-cmake-config-prefix
## Description: add some description
## Origin/Author: add some origin or author
## Bug: bug URL
Gbp-Pq: Name fix-cmake-config-prefix.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
mips-fpxx-enable
Gbp-Pq: Name mips-fpxx-enable.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
scan-view-fix-path
Gbp-Pq: Name scan-view-fix-path.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
install-scan-build-py
Gbp-Pq: Name install-scan-build-py.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
clang-analyzer-force-version
# Force the version of clang in the analyzer
# This was causing the static analyzer to fail silently if the clang & clang++ are
# not installed
Gbp-Pq: Name clang-analyzer-force-version.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
silent-MCJIIT-tests
Gbp-Pq: Name silent-MCJIIT-tests.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
hurd-EIEIO-undef
===================================================================
Gbp-Pq: Name hurd-EIEIO-undef.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
lldb-libname
Gbp-Pq: Name lldb-libname.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
lldb-soname
Gbp-Pq: Name lldb-soname.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
soname
Gbp-Pq: Name 0044-soname.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
fix-llvm-config-obj-src-root
Gbp-Pq: Name fix-llvm-config-obj-src-root.patch
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
disable-display-PASS-UNSUPPORTED-XFAIL
===================================================================
Gbp-Pq: Name disable-display-PASS-UNSUPPORTED-XFAIL.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
silent-more-tests
# Comment the tests for the code coverage (fails otherwise)
Gbp-Pq: Name silent-more-tests.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
do-not-fail-on-unexpected-pass
===================================================================
Gbp-Pq: Name do-not-fail-on-unexpected-pass.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
fix-clang-path-and-build
Gbp-Pq: Name fix-clang-path-and-build.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
removeduplicatedeclaration
Gbp-Pq: Name removeduplicatedeclaration.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
python-clangpath
Gbp-Pq: Name python-clangpath.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
atomic_library_2
Gbp-Pq: Name atomic_library_2.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
atomic_library_1
Gbp-Pq: Name atomic_library_1.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
silent-gold-test
Gbp-Pq: Name silent-gold-test.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
use-deb-json
Gbp-Pq: Name use-deb-json.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
hurd-pathmax
===================================================================
Gbp-Pq: Name hurd-pathmax.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
unwind-chain-inclusion
# Without this patch, the first local include of unwind.h might, with the
# __has_include_next, try to include the one from the system.
# It might be /usr/include/clang/3.4/include/unwind.h
# Because of the #ifndef __CLANG_UNWIND_H, it might never include any declaration
# from the system.
Gbp-Pq: Name unwind-chain-inclusion.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
clang-format-version
Gbp-Pq: Name clang-format-version.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
declare_clear_cache
Gbp-Pq: Name declare_clear_cache.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
scan-build-clang-path
Gbp-Pq: Name scan-build-clang-path.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
Debian-version-info-and-bugreport
Gbp-Pq: Name 0003-Debian-version-info-and-bugreport.patch
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
set-correct-float-abi
Gbp-Pq: Name 26-set-correct-float-abi.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
fix_clang_stdint
===================================================================
Gbp-Pq: Name 27-fix_clang_stdint.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
strlcpy_strlcat_warning_removed
Gbp-Pq: Name 23-strlcpy_strlcat_warning_removed.diff
LLVM Packaging Team [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
clang_debian_version
===================================================================
Gbp-Pq: Name 19-clang_debian_version.patch
Sylvestre Ledru [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
llvm-toolchain-4.0 (1:4.0.1-8) unstable; urgency=medium
[ Ximin Luo ]
* Backport some patches (originally from rust, and upstreamed) to fix two
failing tests in rustc.
[ Sylvestre Ledru ]
* Try to fix the mipsel FTBFS (Closes: #877567)
I am trying the first option from the bug:
- gsplit-dward on 32 bits archs
- -g everywhere
Many thanks to Adrian Bunk for that
[dgit import unpatched llvm-toolchain-4.0 1:4.0.1-8]
Sylvestre Ledru [Wed, 18 Oct 2017 14:37:25 +0000 (15:37 +0100)]
Import llvm-toolchain-4.0_4.0.1-8.debian.tar.xz
[dgit import tarball llvm-toolchain-4.0 1:4.0.1-8 llvm-toolchain-4.0_4.0.1-8.debian.tar.xz]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig.tar.bz2]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig-clang-tools-extra.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig-clang-tools-extra.tar.bz2]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig-clang.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig-clang.tar.bz2]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig-compiler-rt.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig-compiler-rt.tar.bz2]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig-lld.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig-lld.tar.bz2]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig-lldb.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig-lldb.tar.bz2]
Sylvestre Ledru [Wed, 14 Jun 2017 17:06:20 +0000 (18:06 +0100)]
Import llvm-toolchain-4.0_4.0.1.orig-polly.tar.bz2
[dgit import orig llvm-toolchain-4.0_4.0.1.orig-polly.tar.bz2]