LLVM backend for 6502
Go to file
Jakob Stoklund Olesen aba6559370 Add an MRI::tracksLiveness() flag.
Late optimization passes like branch folding and tail duplication can
transform the machine code in a way that makes it expensive to keep the
register liveness information up to date. There is a fuzzy line between
register allocation and late scheduling where the liveness information
degrades.

The MRI::tracksLiveness() flag makes the line clear: While true,
liveness information is accurate, and can be used for register
scavenging. Once the flag is false, liveness information is not
accurate, and can only be used as a hint.

Late passes generally don't need the liveness information, but they will
sometimes use the register scavenger to help update it. The scavenger
enforces strict correctness, and we have to spend a lot of code to
update register liveness that may never be used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-27 15:13:58 +00:00
autoconf Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
bindings [python] Add negative MemoryBuffer testcase 2012-03-22 11:23:52 +00:00
cmake Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
docs llvm/docs/*.html: Fix markups. 2012-03-27 11:25:16 +00:00
examples
include Add an MRI::tracksLiveness() flag. 2012-03-27 15:13:58 +00:00
lib Add an MRI::tracksLiveness() flag. 2012-03-27 15:13:58 +00:00
projects Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
runtime
test Post-ra LICM should take care not to hoist an instruction that would clobber a 2012-03-27 01:50:58 +00:00
tools Include cctype for std::isprint. 2012-03-23 11:49:32 +00:00
unittests Revert a series of commits to MCJIT to get the build working in CMake 2012-03-22 05:44:06 +00:00
utils fix a failure path to print the right thing, part of PR12357 2012-03-26 19:11:51 +00:00
.gitignore
CMakeLists.txt Remove the C backend. 2012-03-23 05:50:46 +00:00
configure Add InitializeNativeTargetDisassembler function. 2012-03-26 21:56:56 +00:00
CREDITS.TXT sort by alpha. 2012-03-12 21:12:59 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM. 2012-03-13 08:33:15 +00:00
Makefile.rules
README.txt test commit 2012-03-20 13:12:38 +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.