diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-08-09 23:41:44 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-08-09 23:41:44 +0000 |
commit | 6a14dc01ff01a60d0d997b765b4dd20166e81340 (patch) | |
tree | 7c98690aadce40bb1d6528ba2513588517a4018b /lldb/source/Commands/CommandObjectFrame.cpp | |
parent | 92b942b1b533f0c26232b055e129cea21ae5e563 (diff) | |
download | llvm-6a14dc01ff01a60d0d997b765b4dd20166e81340.zip llvm-6a14dc01ff01a60d0d997b765b4dd20166e81340.tar.gz llvm-6a14dc01ff01a60d0d997b765b4dd20166e81340.tar.bz2 |
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.
llvm-svn: 137182
Diffstat (limited to 'lldb/source/Commands/CommandObjectFrame.cpp')
0 files changed, 0 insertions, 0 deletions