OSDN Git Service

Propagate nonnull and dereferenceable throught launder
authorPiotr Padlewski <piotr.padlewski@gmail.com>
Fri, 18 May 2018 23:54:33 +0000 (23:54 +0000)
committerPiotr Padlewski <piotr.padlewski@gmail.com>
Fri, 18 May 2018 23:54:33 +0000 (23:54 +0000)
commit461e372be697bc5a31e373b47321c69e5617e2e8
treebb741dd6c2af8d67ccedaa67da44cae5694e1b75
parent6ebd054bb6197e2be60b0ad176f740c871c39091
Propagate nonnull and dereferenceable throught launder

Summary:
invariant.group.launder should not stop propagation
of nonnull and dereferenceable, because e.g. we would not be
able to hoist loads speculatively.

Reviewers: rsmith, amharc, kuhar, xbolva00, hfinkel

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D46972

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332788 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/Loads.cpp
lib/Analysis/ValueTracking.cpp
test/Analysis/ValueTracking/deref-bitcast-of-gep.ll
test/Analysis/ValueTracking/invariant.group.ll [new file with mode: 0644]