llvm-project/llvm
Teresa Johnson 9a18a6f08b Disable loop peeling during full unrolling pass.
Summary:
Peeling should not occur during the full unrolling invocation early
in the pipeline, but rather later with partial and runtime loop
unrolling. The later loop unrolling invocation will also eventually
utilize profile summary and branch frequency information, which
we would like to use to control peeling. And for ThinLTO we want
to delay peeling until the backend (post thin link) phase, just as
we do for most types of unrolling.

Ensure peeling doesn't occur during the full unrolling invocation
by adding a parameter to the shared implementation function, similar
to the way partial and runtime loop unrolling are disabled.

Performance results for ThinLTO suggest this has a neutral to positive
effect on some internal benchmarks.

Reviewers: chandlerc, davidxl

Subscribers: mzolotukhin, llvm-commits, mehdi_amini

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

llvm-svn: 309966
2017-08-03 17:52:38 +00:00
..
bindings Update the Go bindings for r309426 (remove offset from llvm.dbg.value) 2017-07-28 22:44:44 +00:00
cmake [OCaml] Pass -D/-UNDEBUG through to ocamlc 2017-07-29 08:10:24 +00:00
docs [llvm-cov] Respect the value of the -show-instantiations option 2017-08-02 23:35:24 +00:00
examples Defeat another -Wunused-but-set-variable warning 2017-07-19 15:06:31 +00:00
include Disable loop peeling during full unrolling pass. 2017-08-03 17:52:38 +00:00
lib Disable loop peeling during full unrolling pass. 2017-08-03 17:52:38 +00:00
projects
resources
runtimes [CMake] Remove redundant logic in runtimes/CMakeList.txt 2017-07-24 17:26:28 +00:00
test Disable loop peeling during full unrolling pass. 2017-08-03 17:52:38 +00:00
tools Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
unittests Do not want to use BFI to get profile count for sample pgo 2017-08-03 17:11:41 +00:00
utils [TableGen] AsmMatcher: fix OpIdx computation when HasOptionalOperands is true 2017-08-03 15:40:21 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Revert "[lit] Avoid copying llvm/utils/lit/tests/Inputs with lit site configs" 2017-08-02 17:16:25 +00:00
CODE_OWNERS.TXT
CREDITS.TXT Another test commit 2017-07-01 03:24:06 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT [RelTest] Diana is doing both releases now 2017-07-14 08:33:52 +00:00
configure
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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.