LLVM backend for 6502
Go to file
Arnold Schwaighofer e672548602 SCEVExpander: Try hard not to create derived induction variables in other loops
During LSR of one loop we can run into a situation where we have to expand the
start of a recurrence of a loop induction variable in this loop. This start
value is a value derived of the induction variable of a preceeding loop. SCEV
has cannonicalized this value to a different recurrence than the recurrence of
the preceeding loop's induction variable (the type and/or step direction) has
changed). When we come to instantiate this SCEV we created a second induction
variable in this preceeding loop.  This patch tries to base such derived
induction variables of the preceeding loop's induction variable.

This helps twolf on arm and seems to help scimark2 on x86.

radar://15970709

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201465 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-15 17:11:56 +00:00
autoconf
bindings
cmake [CMake] Let llvm_add_library(MODULE) check capability of loadable module. 2014-02-13 11:25:17 +00:00
docs Cleanup docs about lit substitutions 2014-02-15 08:35:56 +00:00
examples
include SCEVExpander: Try hard not to create derived induction variables in other loops 2014-02-15 17:11:56 +00:00
lib SCEVExpander: Try hard not to create derived induction variables in other loops 2014-02-15 17:11:56 +00:00
projects
test SCEVExpander: Try hard not to create derived induction variables in other loops 2014-02-15 17:11:56 +00:00
tools MSBuild integration: get the LibraryPath right (PR18707) 2014-02-13 22:01:35 +00:00
unittests Remove tautological test line (unsigneds are always >=0). 2014-02-15 00:45:14 +00:00
utils
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT Remove myself as owner of libc++ 2014-02-14 21:09:01 +00:00
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.