LLVM backend for 6502
Go to file
Chandler Carruth 50bc165c54 [SROA] Fix PR18615 with some long overdue simplifications to the bounds
checking in SROA.

The primary change is to just rely on uge for checking that the offset
is within the allocation size. This removes the explicit checks against
isNegative which were terribly error prone (including the reversed logic
that led to PR18615) and prevented us from supporting stack allocations
larger than half the address space.... Ok, so maybe the latter isn't
*common* but it's a silly restriction to have.

Also, we used to try to support a PHI node which loaded from before the
start of the allocation if any of the loaded bytes were within the
allocation. This doesn't make any sense, we have never really supported
loading or storing *before* the allocation starts. The simplified logic
just doesn't care.

We continue to allow loading past the end of the allocation in part to
support cases where there is a PHI and some loads are larger than others
and the larger ones reach past the end of the allocation. We could solve
this a different and more conservative way, but I'm still somewhat
paranoid about this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202224 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-26 03:14:14 +00:00
autoconf Add aarch64 to config.guess 2014-02-25 09:30:54 +00:00
bindings [python-bindings] Remove some cruft that snuck in. 2014-02-23 04:43:26 +00:00
cmake TableGen.cmake: Functionalize and reformat. 2014-02-23 12:54:15 +00:00
docs Exception handling docs: Describe landingpad clauses' meanings in more detail 2014-02-25 23:48:59 +00:00
examples Use DataLayout from the module when easily available. 2014-02-25 23:25:17 +00:00
include Delete two declared overloads of CallInst::CallInst that are never defined or used. No functionality change. 2014-02-26 02:39:43 +00:00
lib [SROA] Fix PR18615 with some long overdue simplifications to the bounds 2014-02-26 03:14:14 +00:00
projects Remove dead code, we already require cmake 2.8.8. 2014-02-16 14:36:26 +00:00
test [SROA] Fix PR18615 with some long overdue simplifications to the bounds 2014-02-26 03:14:14 +00:00
tools Use DataLayout from the module when easily available. 2014-02-25 23:25:17 +00:00
unittests fix crash in SmallDenseMap copy constructor 2014-02-25 23:35:13 +00:00
utils Replace the F_Binary flag with a F_Text one. 2014-02-24 18:20:12 +00:00
.arcconfig
.clang-format
.gitignore Added .DS_Store entry in .gitignore for ignoring .DS_Store files in the source 2014-01-25 15:15:16 +00:00
CMakeLists.txt Permit CMAKE_INSTALL_RPATH to be set on command line 2014-02-24 22:23:43 +00:00
CODE_OWNERS.TXT Add myself as owner for libc++ 2014-02-18 14:03:17 +00:00
configure Add version, arch, system libs, and targets to Makefile.config 2014-02-09 16:36:42 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile Provide CMake package modules in install tree 2014-02-09 16:37:02 +00:00
Makefile.common
Makefile.config.in Add version, arch, system libs, and targets to Makefile.config 2014-02-09 16:36:42 +00:00
Makefile.rules Provide CMake package modules in install tree 2014-02-09 16:37:02 +00:00
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.