LLVM backend for 6502
Go to file
Jakob Stoklund Olesen 201f2463a7 Don't treat a partial <def,undef> operand as a read.
Normally, a partial register def is treated as reading the
super-register unless it also defines the full register like this:

  %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def>

This patch also uses the <undef> flag on partial defs to recognize
non-reading operands:

  %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit

This fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses
would treat a coalesced copy as still reading the register, extending
the live range artificially.

My test case only works when I disable DCE so a dead copy is left for
RegisterCoalescer, so I am not including it.

<rdar://problem/9967101>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138018 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-19 00:30:17 +00:00
autoconf Add NativeClient operating system support. 2011-08-18 22:54:21 +00:00
bindings Remove the build_unwind function from the OCaml bindings. 2011-08-10 01:10:17 +00:00
cmake CMake: [MSVC] Suppress C4551 'function call missing argument list'. 2011-08-17 01:28:30 +00:00
docs Until now all debug info MDNodes referred to a root MDNode, a compile unit. This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL. 2011-08-16 22:09:43 +00:00
examples Convert ConstantExpr::getGetElementPtr and 2011-07-21 14:31:17 +00:00
include Add SplitLandingPadPredecessors(). 2011-08-19 00:05:40 +00:00
lib Don't treat a partial <def,undef> operand as a read. 2011-08-19 00:30:17 +00:00
projects
runtime Use version 402 for the GCDA files when compiling for Apple. 2011-07-28 18:12:20 +00:00
test Track a retain+release nesting level independently of the 2011-08-19 00:26:36 +00:00
tools Fixed compilation warning on Linux by fixing the type of a return value. 2011-08-18 01:19:05 +00:00
unittests Avoid undefined behaviour if somehow NUM_GRAPHS equals 2^32 (or 2011-07-29 07:50:02 +00:00
utils Allow the MCDisassembler to return a "soft fail" status code, indicating an instruction that is disassemblable, but invalid. Only used for ARM UNPREDICTABLE instructions at the moment. 2011-08-17 17:44:15 +00:00
website
.gitignore .gitignore: Ignore /autom4te.cache. We can execute "PATH=/path/to/autotools/bin autoconf/AutoRegen.sh". 2011-08-12 07:47:50 +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 Add NativeClient operating system support. 2011-08-18 22:54:21 +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
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules TableGen'erated MC lowering for simple pseudo-instructions. 2011-07-08 17:36:35 +00:00
ModuleInfo.txt
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.