LLVM backend for 6502
Go to file
Jakob Stoklund Olesen 4a74b3b933 Inflate register classes after coalescing.
Coalescing can remove copy-like instructions with sub-register operands
that constrained the register class.  Examples are:

  x86: GR32_ABCD:sub_8bit_hi -> GR32
  arm: DPR_VFP2:ssub0 -> DPR

Recompute the register class of any virtual registers that are used by
less instructions after coalescing.

This affects code generation for the Cortex-A8 where we use NEON
instructions for f32 operations, c.f. fp_convert.ll:

  vadd.f32  d16, d1, d0
  vcvt.s32.f32  d0, d16

The register allocator is now free to use d16 for the temporary, and
that comes first in the allocation order because it doesn't interfere
with any s-registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137133 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09 18:19:41 +00:00
autoconf Update the default bug report url in autoconf. 2011-08-02 20:53:43 +00:00
bindings Remove InvalidateStructLayoutInfo from the ocaml bindings. 2011-07-31 01:12:39 +00:00
cmake Remove yet another buried and hidden implicit dependency: every single 2011-07-30 08:47:05 +00:00
docs Clean up the grammar for the landingpad instruction. 2011-08-08 08:06:05 +00:00
examples Convert ConstantExpr::getGetElementPtr and 2011-07-21 14:31:17 +00:00
include Move CalculateRegClass to MRI::recomputeRegClass. 2011-08-09 16:46:27 +00:00
lib Inflate register classes after coalescing. 2011-08-09 18:19:41 +00:00
projects
runtime Use version 402 for the GCDA files when compiling for Apple. 2011-07-28 18:12:20 +00:00
test Inflate register classes after coalescing. 2011-08-09 18:19:41 +00:00
tools Add MCInstrAnalysis class. This allows the targets to specify own versions of MCInstrDescs functions. 2011-08-08 18:56:44 +00:00
unittests Avoid undefined behaviour if somehow NUM_GRAPHS equals 2^32 (or 2011-07-29 07:50:02 +00:00
utils Fix encodings for Thumb ASR and LSR immediate operands. They encode the range 1-32, with 32 encoded as 0. 2011-08-08 20:42:17 +00:00
website
.gitignore Ignore Vim swap files 2011-05-31 21:54:28 +00:00
build-for-llvm-top.sh
CMakeLists.txt Added the infrastructute necessary for MIPS JIT support. Patch by Vladimir 2011-07-21 16:28:51 +00:00
configure Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo, 2011-07-22 21:58:54 +00:00
CREDITS.TXT I am the code owner for Clang's IR generation; this has been true 2011-08-02 01:38:19 +00:00
LICENSE.TXT Happy new year. 2011-06-12 15:26:54 +00:00
llvm.spec.in
Makefile Install libprofile_rt.dylib where it's more available for gcov support. 2011-06-10 21:47:14 +00:00
Makefile.common
Makefile.config.in build/configure: Add support for --with-extra-ld-options flag (to provide extra 2011-06-16 22:30:38 +00:00
Makefile.rules TableGen'erated MC lowering for simple pseudo-instructions. 2011-07-08 17:36:35 +00:00
ModuleInfo.txt
README.txt reverting test commit 2011-05-12 17:38:08 +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.