llvm-project/llvm
Daniil Suchkov a2f6ae9abf [InstCombine] Fold PHIs with equal incoming pointers
This is a resubmission of bbb29738b5 that
was reverted due to clang tests failures. It includes the fix and
additional IR tests for the missed case.

Summary:
In case when all incoming values of a PHI are equal pointers, this
transformation inserts a definition of such a pointer right after
definition of the base pointer and replaces with this value both PHI and
all it's incoming pointers. Primary goal of this transformation is
canonicalization of this pattern in order to enable optimizations that
can't handle PHIs. Non-inbounds pointers aren't currently supported.

Reviewers: spatel, RKSimon, lebedev.ri, apilipenko

Reviewed By: apilipenko

Tags: #llvm

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D68128
2019-11-14 17:04:32 +07:00
..
benchmarks
bindings Update version number in llvm python bindings 2019-10-25 17:14:11 -04:00
cmake [cmake] Remove confusing condition argument from else() NFC 2019-11-13 16:37:04 -08:00
docs Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
examples Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
include [ThinLTO] Add correctness check for RO/WO variable import 2019-11-14 12:24:05 +03:00
lib [InstCombine] Fold PHIs with equal incoming pointers 2019-11-14 17:04:32 +07:00
projects
resources
runtimes
test [InstCombine] Fold PHIs with equal incoming pointers 2019-11-14 17:04:32 +07:00
tools Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
unittests [unittests] Add InitializePasses.h includes 2019-11-13 19:42:58 -08:00
utils [lit] Better/earlier errors for empty runs 2019-11-12 09:11:36 -08:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [cmake] Prevent building with BUILD_SHARED_LIBS and LLVM_LINK_LLVM_DYLIB 2019-11-13 21:29:31 -08: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.