hanchenye-llvm-project/llvm
Florian Hahn 950576bdf8 [GVN,NewGVN] Keep nonnull if K does not move.
In combineMetadata, we should be able to preserve K's nonnull metadata,
if K does not move. This condition should hold for all replacements by
NewGVN/GVN, but I added a bunch of assertions to verify that.

Fixes PR35038.

There probably are additional kinds of metadata that could be preserved
using similar reasoning. This is follow-up work.

Reviewers: dberlin, davide, efriedma, nlopes

Reviewed By: efriedma

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

llvm-svn: 339149
2018-08-07 15:36:11 +00:00
..
bindings
cmake Add llvm-rc to LLVM_TOOLCHAIN_TOOLS (PR38386) 2018-08-01 07:51:55 +00:00
docs [docs] Continue working around broken Sphinx parsing of LLVM code blocks 2018-08-06 10:20:05 +00:00
examples
include [GVN,NewGVN] Keep nonnull if K does not move. 2018-08-07 15:36:11 +00:00
lib [GVN,NewGVN] Keep nonnull if K does not move. 2018-08-07 15:36:11 +00:00
projects
resources
runtimes
test [GVN,NewGVN] Keep nonnull if K does not move. 2018-08-07 15:36:11 +00:00
tools [DebugInfo] Reduce debug_str_offsets section size 2018-08-07 09:54:52 +00:00
unittests [DebugInfo] Reduce debug_str_offsets section size 2018-08-07 09:54:52 +00:00
utils [lit, tests] Fix failing lit test: shtest-format.py 2018-08-07 04:08:46 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt CMake: Remove LLVM_DYLIB_SYMBOL_VERSIONING 2018-08-02 18:16:10 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.