1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
Go to file
Kit Barton 5eb6e29fcf 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 build: make libunwind a proper project 2015-04-25 01:47:39 +00:00
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 Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +00:00
.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
configure Temporarily revert r244012 while we see if it's really necessary. 2015-08-05 05:32:22 +00:00
CREDITS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
LICENSE.TXT Update for a new year. 2015-03-12 01:25:29 +00:00
llvm.spec.in
LLVMBuild.txt
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
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 Add support for SunOS function/data sections and associated 2015-03-03 20:54:29 +00:00
README.txt Revert test commit at revision 233535. 2015-03-30 12:39:03 +00:00

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.