LLVM backend for 6502
Go to file
Quentin Colombet e817bdd304 [PeepholeOptimizer] Take advantage of the isInsertSubreg property in the
advanced copy optimization.

This is the final step patch toward transforming:
udiv    r0, r0, r2
udiv    r1, r1, r3
vmov.32 d16[0], r0
vmov.32 d16[1], r1
vmov    r0, r1, d16
bx      lr

into:
udiv    r0, r0, r2
udiv    r1, r1, r3
bx      lr

Indeed, thanks to this patch, this optimization is able to look through
vmov.32 d16[0], r0
vmov.32 d16[1], r1

and is able to rewrite the following sequence:
vmov.32 d16[0], r0
vmov.32 d16[1], r1
vmov    r0, r1, d16

into simple generic GPR copies that the coalescer managed to remove.

<rdar://problem/12702965>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216144 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-21 00:19:16 +00:00
autoconf
bindings
cmake
docs Add note to LangRef about how function arguments can be unnamed and 2014-08-20 15:06:30 +00:00
examples
include Add isInsertSubreg property. 2014-08-20 23:49:36 +00:00
lib [PeepholeOptimizer] Take advantage of the isInsertSubreg property in the 2014-08-21 00:19:16 +00:00
projects
test [PeepholeOptimizer] Take advantage of the isInsertSubreg property in the 2014-08-21 00:19:16 +00:00
tools Quick fix for an use after free. 2014-08-20 15:19:37 +00:00
unittests BumpPtrAllocator: don't accept 0 for the alignment parameter 2014-08-19 23:35:33 +00:00
utils Add isInsertSubreg property. 2014-08-20 23:49:36 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.