LLVM backend for 6502
Go to file
Jakob Stoklund Olesen 4a0a18af4a Permit remat of partial register defs when it is safe.
An instruction may define part of a register where the other bits are
undefined. In that case, it is safe to rematerialize the instruction.
For example:

  %vreg2:ssub_0<def> = VLDRS <cp#0>, 0, pred:14, pred:%noreg, %vreg2<imp-def>

The extra <imp-def> operand indicates that the instruction does not read
the other parts of the virtual register, so a remat is safe.

This patch simply allows multiple def operands for the virtual register.
It is MI->readsVirtualRegister() that determines if we depend on a
previous value so remat is impossible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138953 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-01 18:27:51 +00:00
autoconf Update config.sub, config.guess and configure. 2011-08-23 06:43:49 +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 Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00
examples Move TargetRegistry and TargetSelect from Target to Support where they belong. 2011-08-24 18:08:43 +00:00
include Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00
lib Permit remat of partial register defs when it is safe. 2011-09-01 18:27:51 +00:00
projects
runtime
test Permit remat of partial register defs when it is safe. 2011-09-01 18:27:51 +00:00
tools Teach macho-dump to dump the uleb128s referred to by linkedit_data segments. 2011-08-30 22:10:58 +00:00
unittests Fix C++0x narrowing errors when char is unsigned. 2011-08-30 20:53:29 +00:00
utils Fix up r137380 based on post-commit review by Jim Grosbach. 2011-09-01 18:02:14 +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
configure Update config.sub, config.guess and configure. 2011-08-23 06:43:49 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
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.