llvm-project/llvm/lib
John Brawn ecf79300dd [SCEV] More accurate calculation of max backedge count of some less-than loops
In loops that look something like
 i = n;
 do {
  ...
 } while(i++ < n+k);
where k is a constant, the maximum backedge count is k (in fact the backedge
count will be either 0 or k, depending on whether n+k wraps). More generally
for LHS < RHS if RHS-(LHS of first comparison) is a constant then the loop will
iterate either 0 or that constant number of times.

This allows for more loop unrolling with the recent upper bound loop unrolling
changes, and I'm working on a patch that will let loop unrolling additionally
make use of the loop being executed either 0 or k times (we need to retain the
loop comparison only on the first unrolled iteration).

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

llvm-svn: 284465
2016-10-18 10:10:53 +00:00
..
Analysis [SCEV] More accurate calculation of max backedge count of some less-than loops 2016-10-18 10:10:53 +00:00
AsmParser [X86] Basic additions to support RegCall Calling Convention. 2016-10-13 07:53:43 +00:00
Bitcode ThinLTO: handles modules with empty summaries 2016-10-08 04:44:18 +00:00
CodeGen [XRay] Support for for tail calls for ARM no-Thumb 2016-10-18 05:54:15 +00:00
DebugInfo Truncate long names in type records 2016-10-13 17:33:22 +00:00
Demangle Avoid using alignas and constexpr. 2016-09-06 20:36:24 +00:00
ExecutionEngine Handle relocations to thumb functions when dynamic linking COFF modules 2016-10-17 18:56:18 +00:00
Fuzzer [libFuzzer] swap bytes in integers when handling CMP traces 2016-10-15 04:00:07 +00:00
IR [opt] Strip coverage if debug info is not present. 2016-10-17 20:05:35 +00:00
IRReader
LTO LTO: Use the correct mangler function in LTOCodeGenerator::applyScopeRestrictions(). 2016-10-12 20:12:19 +00:00
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker [ThinLTO] Don't link module level assembly when importing 2016-10-12 18:39:29 +00:00
MC [ADT] Move CachedHashString to its own header in ADT, and rename to CachedHashStringRef. 2016-10-17 22:24:36 +00:00
Object Object: Add a missing return in ObjectFile::createObjectFile 2016-10-18 05:17:23 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Option Generalize ArgList::AddAllArgs more 2016-09-29 19:47:58 +00:00
Passes Fix test after renaming -name-anon-functions pass to -name-anon-globals 2016-09-16 17:18:16 +00:00
ProfileData [Coverage] Support loading multiple binaries into a CoverageMapping 2016-10-14 17:16:53 +00:00
Support Revert "Resubmit "Add support for advanced number formatting."" 2016-10-18 09:30:18 +00:00
TableGen Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
Target [ARM] Assign cost of scaling for Cortex-R52 2016-10-18 09:08:54 +00:00
Transforms Ignore debug info when making optimization decisions in SimplifyCFG. 2016-10-17 19:28:44 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00