LLVM backend for 6502
Go to file
Chandler Carruth 02e92a0b5d Switch to a signed representation for the dynamic offsets while walking
across the uses of the alloca. It's entirely possible for negative
numbers to come up here, and in some rare cases simply doing the 2's
complement arithmetic isn't the correct decision. Notably, we can't zext
the index of the GEP. The definition of GEP is that these offsets are
sign extended or truncated to the size of the pointer, and then wrapping
2's complement arithmetic used.

This patch fixes an issue that comes up with *no* input from the
buildbots or bootstrap afaict. The only place where it manifested,
disturbingly, is Clang's own regression test suite. A reduced and
targeted collection of tests are added to cope with this. Note that I've
tried to pin down the potential cases of overflow, but may have missed
some cases. I've tried to add a few cases to test this, but its hard
because LLVM has quite limited support for >64bit constructs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164475 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-23 11:43:14 +00:00
autoconf Add an --enable-backtraces option to configure to determine 2012-09-21 23:03:29 +00:00
bindings add support for ocaml 3.12 2012-09-02 14:42:56 +00:00
cmake CMake toolchain file for Android NDK. 2012-09-11 11:54:27 +00:00
docs docs: Fix long-standing typo in yaml2obj.rst. 2012-09-21 19:48:16 +00:00
examples Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h 2012-06-29 12:38:19 +00:00
include Add LLVM_OVERRIDE to methods that override their base classes. 2012-09-23 02:12:10 +00:00
lib Switch to a signed representation for the dynamic offsets while walking 2012-09-23 11:43:14 +00:00
projects [CMake] Respect LLVM_BUILD_RUNTIME. 2012-09-21 22:49:06 +00:00
runtime libprofile: [CMake] Let libprofile_rt be not loadable_module but shared library. Autoconf's one does so. 2012-08-29 00:37:51 +00:00
test Switch to a signed representation for the dynamic offsets while walking 2012-09-23 11:43:14 +00:00
tools Make sure lli compiles all code before invalidating instruction caches. 2012-09-20 08:46:30 +00:00
unittests This patch adds memory support functions which will later be used to implement section-specific protection handling in MCJIT. 2012-09-19 20:46:12 +00:00
utils Machine Model (-schedmodel only). Added SchedAliases. 2012-09-22 02:24:21 +00:00
.gitignore Ignore the documentation-suggested location for compile_commands.json 2012-08-21 19:23:30 +00:00
CMakeLists.txt enable cross compilation with cmake 2012-08-20 19:56:52 +00:00
CODE_OWNERS.TXT Add the list of code owners to the top level of the LLVM source tree to 2012-07-26 08:04:09 +00:00
configure Add an --enable-backtraces option to configure to determine 2012-09-21 23:03:29 +00:00
CREDITS.TXT Add IRC handle. 2012-09-11 07:50:40 +00:00
LICENSE.TXT
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt
Makefile darwin/cross-build: Unset SDKROOT when building BuildTools. 2012-08-22 22:01:01 +00:00
Makefile.common [docs] Remove unsupported references to ExtraSource variable. 2012-05-15 21:32:27 +00:00
Makefile.config.in Temporarily revert this to bring back the bots. 2012-08-28 01:17:46 +00:00
Makefile.rules Temporarily revert this to bring back the bots. 2012-08-28 01:17:46 +00:00
README.txt test commit 2012-07-11 17:34:12 +00:00

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.