llvm-6502/lib
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
..
Analysis Provide method to print variable's extended name which includes inline location. 2011-08-09 01:03:14 +00:00
Archive Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
AsmParser Representation of 'atomic load' and 'atomic store' in IR. 2011-08-09 23:02:53 +00:00
Bitcode Representation of 'atomic load' and 'atomic store' in IR. 2011-08-09 23:02:53 +00:00
CodeGen Inflate register classes after coalescing. 2011-08-09 18:19:41 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
Linker Linke NamedMDNodes after linking global values as comment suggests. 2011-08-04 19:44:28 +00:00
MC Don't truncate MachO addresses. 2011-08-09 22:12:37 +00:00
Object Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
Support Put Darwin-specific code inside an __APPLE__ ifdef. 2011-08-09 19:54:32 +00:00
Target Promote VMOVS to VMOVD when possible. 2011-08-09 23:41:44 +00:00
Transforms Representation of 'atomic load' and 'atomic store' in IR. 2011-08-09 23:02:53 +00:00
VMCore VMCore/BasicBlock.cpp: Don't assume BasicBlock::iterator might end with a non-PHInode Instruction in successors. 2011-08-09 23:13:05 +00:00
CMakeLists.txt Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
Makefile