LLVM backend for 6502
Go to file
Jakob Stoklund Olesen 34a18775a4 Remove support for PhysReg joining.
This has been disabled for a while, and it is not a feature we want to
support. Copies between physical and virtual registers are eliminated by
good hinting support in the register allocator. Joining virtual and
physical registers is really a form of register allocation, and the
coalescer is not properly equipped to do that. In particular, it cannot
backtrack coalescing decisions, and sometimes that would cause it to
create programs that were impossible to register allocate, by exhausting
a small register class.

It was also very difficult to keep track of the live ranges of aliasing
registers when extending the live range of a physreg. By disabling
physreg joining, we can let fixed physreg live ranges remain constant
throughout the register allocator super-pass.

One type of physreg joining remains: A virtual register that has a
single value which is a copy of a reserved register can be merged into
the reserved physreg. This always lowers register pressure, and since we
don't compute live ranges for reserved registers, there are no problems
with aliases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157055 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-18 17:18:58 +00:00
autoconf - Added ExecutionEngine/MCJIT tests 2012-05-17 21:07:47 +00:00
bindings
cmake
docs Fixed grammar for the llvm.trap intrinsic description. 2012-05-16 00:26:51 +00:00
examples
include [Hexagon] Clean up Hexagon ELF definition. 2012-05-17 16:46:46 +00:00
lib Remove support for PhysReg joining. 2012-05-18 17:18:58 +00:00
projects
runtime
test FileCheck-ify, apropos of nothing 2012-05-18 16:24:01 +00:00
tools Fixed a bug in llvm-objdump when disassembling using -macho option for a binary 2012-05-18 00:13:56 +00:00
unittests fix corner case in ConstantRange::intersectWith(). 2012-05-18 00:14:36 +00:00
utils enhance the intrinsic info stuff to emit encodings that don't fit in 32-bits into a 2012-05-17 15:55:41 +00:00
.gitignore
CMakeLists.txt Make it possible to switch off solution folders. VS Express does not support 2012-05-09 15:10:54 +00:00
configure - Added ExecutionEngine/MCJIT tests 2012-05-17 21:07:47 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile Do not install llvm-config-host for cross-builds of clang. rdar://11317847 2012-05-09 00:07:02 +00:00
Makefile.common [docs] Remove unsupported references to ExtraSource variable. 2012-05-15 21:32:27 +00:00
Makefile.config.in - Added ExecutionEngine/MCJIT tests 2012-05-17 21:07:47 +00:00
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.