Go to file
Serguei Katkov 7d02f059e7 SCEV] Do not use induction in isKnownPredicate for simplification umax.
During simplification umax we trigger isKnownPredicate twice. As a first attempt it
tries the induction. To do that it tries to get post increment of SCEV.
Re-writing the SCEV may result in simplification of umax. If the SCEV contains a lot
of umax operations this recursion becomes very slow.

The added test demonstrates the slow behavior.

To resolve this we use only simple ways to check whether the predicate is known.

Reviewers: sanjoy, mkazantsev
Reviewed By: sanjoy
Subscribers: lebedev.ri, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D46046

llvm-svn: 331949
2018-05-10 01:40:43 +00:00
clang [Builtins] Improve the IR emitted for MSVC compatible rotr/rotl builtins to match what the middle and backends understand 2018-05-10 00:05:13 +00:00
clang-tools-extra Revert "[clang-tidy] Adding RestrictSystemIncludes check to Fuchsia module" 2018-05-09 22:28:18 +00:00
compiler-rt [sanitizer] Use all available rounded up capacity 2018-05-09 23:31:05 +00:00
debuginfo-tests [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
libclc remquo: Flush denormals if not supported 2018-05-03 05:44:28 +00:00
libcxx Allow copy elision in path concatenation 2018-05-09 18:57:17 +00:00
libcxxabi Fix test failure for missing _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS 2018-05-03 12:44:27 +00:00
libunwind [cmake] Remove duplicate command line options from build 2018-04-05 20:27:50 +00:00
lld [COFF] Fix dangling StringRefs from SVN 331900 2018-05-09 19:07:10 +00:00
lldb [cmake, unittests] Fix the CMake file for the LLDB unittests to support multiple configurations 2018-05-09 19:58:51 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm SCEV] Do not use induction in isKnownPredicate for simplification umax. 2018-05-10 01:40:43 +00:00
openmp [OMPT] Fix thread_num for implicit_task_end callbacks in nested parallel regions 2018-05-07 12:42:21 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [ScopInfo] Remove bail out condition in buildMinMaxAccess(). 2018-05-09 16:23:56 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

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.