LLVM backend for 6502
Go to file
Jan Wen Voung d9a3bad448 Change encoding of instruction operands in bitcode binaries to be relative
to the instruction position.  The old encoding would give an absolute
ID which counts up within a function, and only resets at the next function.

I.e., Instead of having:

... = icmp eq i32 n-1, n-2
br i1 ..., label %bb1, label %bb2

it will now be roughly:

... = icmp eq i32 1, 2
br i1 1, label %bb1, label %bb2

This makes it so that ids remain relatively small and can be encoded
in fewer bits.

With this encoding, forward reference operands will be given
negative-valued IDs.  Use signed VBRs for the most common case
of forward references, which is phi instructions.

To retain backward compatibility we bump the bitcode version
from 0 to 1 to distinguish between the different encodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-11 20:20:40 +00:00
autoconf
bindings Fix the ocaml binding breakage from TargetData -> DataLayout changes. 2012-10-08 17:06:25 +00:00
cmake [CMake] add_lit_testsuite: EXCLUDE_FROM_ALL excludes the test ${target} out of check-all. 2012-10-10 13:32:55 +00:00
docs Adds Phabricator documentation. This is a first step that answers many questions we have seen. 2012-10-11 19:40:46 +00:00
examples
include Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
lib Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
projects
runtime Place temporary LTO files into their own subdirectory. 2012-10-10 05:29:15 +00:00
test Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
tools Add a new interface to allow IR-level passes to access codegen-specific information. 2012-10-10 22:04:55 +00:00
unittests
utils tblgen: Compile TableGen without RTTI. 2012-10-10 20:27:18 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:34 +00:00
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile Remove dead variable. 2012-10-10 18:20:49 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Place temporary LTO files into their own subdirectory. 2012-10-10 05:29:15 +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 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.