LLVM backend for 6502
Go to file
Chandler Carruth 70d3bebc8b Add support to ValueTracking for determining that a pointer is non-null
by virtue of inbounds GEPs that preclude a null pointer.

This is a very common pattern in the code generated by std::vector and
other standard library routines which use allocators that test for null
pervasively. This is one step closer to teaching Clang+LLVM to be able
to produce an empty function for:

  void f() {
    std::vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
  }

Which is related to getting them to completely fold SmallVector
push_back sequences into constants when inlining and other optimizations
make that a possibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169573 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07 02:08:58 +00:00
autoconf
bindings
cmake
docs Documentation: fix typos and formatting. 2012-12-06 21:12:35 +00:00
examples
include Add manualRetain() and manualRelease() to ImmutableMapRef, and add a new constructor. 2012-12-07 02:03:00 +00:00
lib Add support to ValueTracking for determining that a pointer is non-null 2012-12-07 02:08:58 +00:00
projects Clean up the sample include orderings, not that it really matters... 2012-12-04 10:46:21 +00:00
runtime
test Add support to ValueTracking for determining that a pointer is non-null 2012-12-07 02:08:58 +00:00
tools Quick build fix for c++03 clang. This needs a proper solution. Note that these offsets are guaranteed to be correct by Endian.h. 2012-12-05 22:38:01 +00:00
unittests Do not run tests MappedMemoryTest.BasicWrite and MultipleWrite unless both 2012-12-05 22:43:07 +00:00
utils unittest/googletest/Makefile: Unbreak out-of-tree build. 2012-12-07 01:25:45 +00:00
.arcconfig
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT Taking ownership of indvars/lsr. 2012-12-05 23:32:44 +00:00
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
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 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.