LLVM backend for 6502
Go to file
Jakob Stoklund Olesen c70c2cafe1 Promote VMOVS to VMOVD when possible.
On Cortex-A8, we use the NEON v2f32 instructions for f32 arithmetic. For
better latency, we also send D-register copies down the NEON pipeline by
translating them to vorr instructions.

This patch promotes even S-register copies to D-register copies when
possible so they can also go down the NEON pipeline.  Example:

        vldr.32 s0, LCPI0_0
    loop:
        vorr    d1, d0, d0
    loop2:
        ...
        vadd.f32        d1, d1, d16

The vorr instruction looked like this after regalloc:

    %S2<def> = COPY %S0, %D1<imp-def>

Copies involving odd S-registers, and copies that don't define the full
D-register are left alone.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137182 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09 23:41:44 +00:00
autoconf Update the default bug report url in autoconf. 2011-08-02 20:53:43 +00:00
bindings Remove InvalidateStructLayoutInfo from the ocaml bindings. 2011-07-31 01:12:39 +00:00
cmake Remove yet another buried and hidden implicit dependency: every single 2011-07-30 08:47:05 +00:00
docs Fix minor typo. 2011-08-09 23:26:12 +00:00
examples
include Representation of 'atomic load' and 'atomic store' in IR. 2011-08-09 23:02:53 +00:00
lib Promote VMOVS to VMOVD when possible. 2011-08-09 23:41:44 +00:00
projects
runtime Use version 402 for the GCDA files when compiling for Apple. 2011-07-28 18:12:20 +00:00
test Tighten operand checking of register-shifted-register operands. 2011-08-09 23:33:27 +00:00
tools Add MCInstrAnalysis class. This allows the targets to specify own versions of MCInstrDescs functions. 2011-08-08 18:56:44 +00:00
unittests Avoid undefined behaviour if somehow NUM_GRAPHS equals 2^32 (or 2011-07-29 07:50:02 +00:00
utils Fix an oversight in the FixedLenDecoderEmitter where we weren't correctly checking the success result of custom decoder hooks on singleton decodings. 2011-08-09 23:05:23 +00:00
website
.gitignore
build-for-llvm-top.sh
CMakeLists.txt
configure Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo, 2011-07-22 21:58:54 +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
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.