llvm-project/llvm
Daniil Fukalov 4c3322cc84 [SCEV] limit recursion depth of CompareSCEVComplexity
Summary:
CompareSCEVComplexity goes too deep (50+ on a quite a big unrolled loop) and runs almost infinite time.

Added cache of "equal" SCEV pairs to earlier cutoff of further estimation. Recursion depth limit was also introduced as a parameter.

Reviewers: sanjoy

Subscribers: mzolotukhin, tstellarAMD, llvm-commits

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

llvm-svn: 287232
2016-11-17 16:07:52 +00:00
..
bindings [OCaml] Adapt to the new attribute C API. 2016-11-12 03:38:30 +00:00
cmake [cmake] Move LLVM_BUILD_STATIC check to an earlier point 2016-11-17 11:22:23 +00:00
docs [CUDA] Update docs to indicate that clang now supports std::complex in CUDA mode. 2016-11-17 01:03:42 +00:00
examples [Orc] Update the BuildingAJIT Chapter 5 server class for the recent RPC changes. 2016-11-11 21:55:25 +00:00
include [Orc] Clang-format the recent RPC update (r286620 and related). 2016-11-17 02:33:47 +00:00
lib [SCEV] limit recursion depth of CompareSCEVComplexity 2016-11-17 16:07:52 +00:00
projects [CMake] Correct configuration order of the sub-projects based on ther dependancies 2016-10-09 20:38:29 +00:00
resources
runtimes [CMake] Make the runtimes directory work with bootstrap builds 2016-10-19 21:50:25 +00:00
test [X86][SSE] Improve lowering of vXi64 multiply with known zero 32-bit halves 2016-11-17 12:14:49 +00:00
tools llvm-dis: Remove dead code. 2016-11-17 00:42:08 +00:00
unittests [SCEV] limit recursion depth of CompareSCEVComplexity 2016-11-17 16:07:52 +00:00
utils Fix -Wunused introduced in r286945 for release builds. 2016-11-15 10:13:09 +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
.clang-tidy
.gitignore
CMakeLists.txt [cmake] Move LLVM_BUILD_STATIC check to an earlier point 2016-11-17 11:22:23 +00:00
CODE_OWNERS.TXT CODE_OWNERS: Take ownership of the X86 backend. 2016-11-12 05:16:06 +00:00
CREDITS.TXT Give SLP vectorizer credit where it's due. 2016-11-14 19:01:59 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt Test commit, deleted empty line at the end of README.txt 2016-11-07 18:31:21 +00:00
RELEASE_TESTERS.TXT
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.