llvm-project/llvm
Michael Zolotukhin de19ed1eb1 [LoopUnroll] Avoid unnecessary DT recomputation.
Summary:
When we completely unroll a loop, it's pretty easy to update DT in-place and
thus avoid rebuilding it. DT recalculation is one of the most time-consuming
tasks in loop-unroll, so avoiding it at least in case of full unroll should be
beneficial.

On some extreme (but still real-world) tests this patch improves compile time by
~2x.

Reviewers: escha, jmolloy, hfinkel, sanjoy, chandlerc

Subscribers: joker.eph, sanjoy, llvm-commits

Differential Revision: http://reviews.llvm.org/D17473

llvm-svn: 261595
2016-02-23 00:30:50 +00:00
..
bindings Kill LLVMAddTargetData 2016-02-16 00:22:02 +00:00
cmake cmake: Simplify the iOS.cmake toolchain 2016-02-12 23:36:05 +00:00
docs docs/AMDGPUUsage: Update assembly example 2016-02-22 18:36:00 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include [PM] Improve the API and comments around the analysis manager proxies. 2016-02-23 00:05:00 +00:00
lib [LoopUnroll] Avoid unnecessary DT recomputation. 2016-02-23 00:30:50 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test AMDGPU: Add failing testcase for register coalescer 2016-02-22 23:45:42 +00:00
tools Fix some abuse of auto flagged by clang's -Wrange-loop-analysis. 2016-02-22 13:11:58 +00:00
unittests [ConstantRange] Rename a method and add more doc 2016-02-22 16:13:02 +00:00
utils [X86] Remove some unused encoding checks from the disassembler table building. 2016-02-20 06:20:21 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] Properly set CMAKE_BUILD_TYPE to Debug by default 2016-02-18 23:07:09 +00:00
CODE_OWNERS.TXT [docs] Remove references to autotools build. 2016-01-30 01:10:15 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.