1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Go to file
Anna Thomas 77fdc59c1c [RuntimeUnrolling] Add logic for loops with multiple exit blocks
Summary:
Runtime unrolling is done for loops with a single exit block and a
single exiting block (and this exiting block should be the latch block).
This patch adds logic to support unrolling in the presence of multiple exit
blocks (which also means multiple exiting blocks).
Currently this is under an off-by-default option and is supported when
epilog code is generated. Support in presence of prolog code will be in
a future patch (we just need to add more tests, and update comments).

This patch is essentially an implementation patch. I have not added any
heuristic (in terms of branches added or code size) to decide when
this should be enabled.

Reviewers: mkuper, sanjoy, reames, evstupac

Reviewed by: reames

Subscribers: llvm-commits

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

llvm-svn: 306846
2017-06-30 17:57:07 +00:00
bindings [NFC] Remove multiple semicolons 2017-06-28 23:15:16 +00:00
cmake TableGen.cmake: Use DEPFILE for Ninja Generator with CMake>=3.7. 2017-06-21 22:04:07 +00:00
docs Fixed misplaced table border in the docs. 2017-06-30 09:47:17 +00:00
examples [ORC] Re-apply r306166 and r306168 with fix for regression test. 2017-06-23 23:25:28 +00:00
include Remove unnecessary commented out argument. NFCI. 2017-06-30 13:26:17 +00:00
lib [RuntimeUnrolling] Add logic for loops with multiple exit blocks 2017-06-30 17:57:07 +00:00
projects Add temporary workaround to allow in-tree libc++ builds on Windows 2017-05-11 01:44:30 +00:00
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
runtimes [CMake][runtimes] Add install target for runtimes builtins 2017-06-02 19:38:11 +00:00
test [RuntimeUnrolling] Add logic for loops with multiple exit blocks 2017-06-30 17:57:07 +00:00
tools [llvm-readobj] Improve printouts for COFF ARM64 binaries 2017-06-30 07:02:13 +00:00
unittests [DWARF] Don't include TestingSupport in LLVM_LINK_COMPONENTS. 2017-06-30 16:50:51 +00:00
utils Revert "[lit] Clean output directories before running tests." 2017-06-30 16:05:03 +00:00
.arcconfig project_id is from another era in phabricator land and does not provide any value. 2016-09-27 15:47:29 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.clang-tidy .clang-tidy: correct style name is 'camelBack' not 'lowerCase'. 2016-09-13 19:04:26 +00:00
.gitignore gitignore: Ignore .vs folder (VS2017 config files) 2017-04-08 00:16:58 +00:00
CMakeLists.txt [Solaris] replace Solaris.h hack with a set of better hacks 2017-06-22 13:18:46 +00:00
CODE_OWNERS.TXT Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
CREDITS.TXT CREDITS.TXT: Update myself. 2017-06-30 11:59:53 +00:00
LICENSE.TXT Bump year to 2017 in LICENSE.txt 2017-01-12 18:02:42 +00:00
llvm.spec.in [Sparc] Implement i64 load/store support for 32-bit sparc. 2015-08-10 19:11:39 +00:00
LLVMBuild.txt
README.txt Test commit. Added a blank line. 2017-03-06 20:45:33 +00:00
RELEASE_TESTERS.TXT Update the release tester for MIPS. NFC. 2017-01-17 11:00:28 +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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.