llvm-project/llvm
Kit Barton a7bf96ab5c Fix possible infinite loop in shrink wrapping when searching for save/restore
points.

There is an infinite loop that can occur in Shrink Wrapping while searching 
for the Save/Restore points. 

Part of this search checks whether the save/restore points are located in
different loop nests and if so, uses the (post) dominator trees to find the
immediate (post) dominator blocks. However, if the current block does not have
any immediate (post) dominators then this search will result in an infinite
loop. This can occur in code containing an infinite loop.

The modification checks whether the immediate (post) dominator is different from
the current save/restore block. If it is not, then the search terminates and the
current location is not considered as a valid save/restore point for shrink wrapping.

Phabricator: http://reviews.llvm.org/D11607
llvm-svn: 244247
2015-08-06 19:01:57 +00:00
..
autoconf Temporarily revert r244012 while we see if it's really necessary. 2015-08-05 05:32:22 +00:00
bindings Revert "Fix `llvm-config` to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components." 2015-08-05 20:03:26 +00:00
cmake Remove the configure and cmake checks for sys/wait.h 2015-08-04 06:29:58 +00:00
docs Update docs for accessing !dbg attachments 2015-08-06 18:15:25 +00:00
examples [PM/AA] Hoist the interface for BasicAA into a header file. 2015-08-06 07:33:15 +00:00
include LibDriver: Replace references to lld-link2 with lld-link. 2015-08-06 19:00:42 +00:00
lib Fix possible infinite loop in shrink wrapping when searching for save/restore 2015-08-06 19:01:57 +00:00
projects
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
test Fix possible infinite loop in shrink wrapping when searching for save/restore 2015-08-06 19:01:57 +00:00
tools [llvm-objdump] Add missing call to exit(1). 2015-08-06 00:18:52 +00:00
unittests Fix Visual C++ error C2248: 2015-08-06 07:59:26 +00:00
utils Plug memory leaks in AsmWriterEmitter::EmitPrintAliasInstruction. 2015-08-06 13:18:59 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Minor updates to gitignore so that symlinks are ignored in the projects dir. 2015-07-07 20:24:58 +00:00
CMakeLists.txt [cmake] Handle Dragonfly BSD like FreeBSD 2015-08-06 17:17:44 +00:00
CODE_OWNERS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
CREDITS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Rename all references to old mailing lists to new lists.llvm.org address. 2015-08-05 03:51:17 +00:00
Makefile.rules
README.txt
configure Temporarily revert r244012 while we see if it's really necessary. 2015-08-05 05:32:22 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.