LLVM backend for 6502
Go to file
Chris Lattner 992efb0378 Step #2 to improve trip count analysis for loops like this:
void f(int* begin, int* end) { std::fill(begin, end, 0); }

which turns into a != exit expression where one pointer is
strided and (thanks to step #1) known to not overflow, and 
the other is loop invariant.

The observation here is that, though the IV is strided by
4 in this case, that the IV *has* to become equal to the
end value.  It cannot "miss" the end value by stepping over
it, because if it did, the strided IV expression would
eventually wrap around.

Handle this by turning A != B into "A-B != 0" where the A-B
part is known to be NUW.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123131 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-09 22:26:35 +00:00
autoconf
bindings
cmake Rewrite handling of LLVM_ENABLE_PIC. It was being processed after 2011-01-09 14:34:39 +00:00
docs Don't document exactly how virtual registers are represented as integers. Code 2011-01-08 23:10:59 +00:00
examples
include Step #2 to improve trip count analysis for loops like this: 2011-01-09 22:26:35 +00:00
lib Step #2 to improve trip count analysis for loops like this: 2011-01-09 22:26:35 +00:00
projects
runtime
test Instcombine: Fix pattern where the sext did not dominate the icmp using it 2011-01-09 16:00:11 +00:00
tools
unittests First step in fixing PR8927: 2011-01-08 16:42:36 +00:00
utils On Windows, replace each occurrence of '\' by '\\' on the replacement string. This is necessary to prevent re.sub from replacing escape sequences occurring in path. 2011-01-08 18:09:48 +00:00
website
.gitignore
build-for-llvm-top.sh
CMakeLists.txt Apply -fPIC to C sources too. 2011-01-09 17:38:31 +00:00
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
ModuleInfo.txt
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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.