llvm-project/llvm
Wei Mi 55a68a2400 [JumpThreading] Stop searching predecessor when the current bb is in a
unreachable loop.

updatePredecessorProfileMetadata in jumpthreading tries to find the
first dominating predecessor block for a PHI value by searching upwards
the predecessor block chain.

But jumpthreading may see some temporary IR state which contains
unreachable bb not being cleaned up. If an unreachable loop happens to
be on the predecessor block chain, keeping chasing the predecessor
block will run into an infinite loop.

The patch fixes it.

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

llvm-svn: 367154
2019-07-26 20:59:22 +00:00
..
benchmarks
bindings
cmake [CMake] Add -z defs on Solaris 2019-07-23 16:27:34 +00:00
docs Revert "[Remarks] Support parsing remark metadata in the YAML remark parser" 2019-07-26 20:54:44 +00:00
examples [ORC] Add deprecation warnings to ORCv1 layers and utilities. 2019-07-17 16:40:52 +00:00
include Revert "[Remarks] Support parsing remark metadata in the YAML remark parser" 2019-07-26 20:54:44 +00:00
lib [JumpThreading] Stop searching predecessor when the current bb is in a 2019-07-26 20:59:22 +00:00
projects Revert "[libc++] Integrate the PSTL into libc++" 2019-07-19 18:52:46 +00:00
resources
runtimes
test [JumpThreading] Stop searching predecessor when the current bb is in a 2019-07-26 20:59:22 +00:00
tools [llvm-objcopy] Add support for --add-section for COFF 2019-07-26 17:06:41 +00:00
unittests Revert "[Remarks] Support parsing remark metadata in the YAML remark parser" 2019-07-26 20:54:44 +00:00
utils [llvm] [lit/tests] Replace 'env -u' with more portable construct 2019-07-26 15:39:05 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [CMake] Allow LLVM_EXTERNAL_<proj>_SOURCE_DIR to be overridden if it is 2019-07-26 19:25:57 +00:00
CODE_OWNERS.TXT Update email address in CODE_OWNERS 2019-07-01 16:01:15 +00:00
CREDITS.TXT Update email address. 2019-07-17 07:02:02 +00:00
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.