diff options
author | Clement Courbet <courbet@google.com> | 2020-01-07 09:08:24 +0100 |
---|---|---|
committer | Clement Courbet <courbet@google.com> | 2020-01-07 17:04:36 +0100 |
commit | ccb06a9fb15b9c10099cef28ff1240eb9ffa9390 (patch) | |
tree | 1508802084c4d934166494f3a5b9a06db2d9dc00 /test/simple_encode_test.cc | |
parent | 50d1a4aa725fbc78ee89ffde5e83b4ee4fe4893e (diff) | |
download | libvpx-ccb06a9fb15b9c10099cef28ff1240eb9ffa9390.tar libvpx-ccb06a9fb15b9c10099cef28ff1240eb9ffa9390.tar.gz libvpx-ccb06a9fb15b9c10099cef28ff1240eb9ffa9390.tar.bz2 libvpx-ccb06a9fb15b9c10099cef28ff1240eb9ffa9390.zip |
Avoid reloads in vp9_read_mode_info.
The compiler cannot prove that the buffers do not alias, so it has to emit a
reload. On our internal workloads, the reloads are about 1% of the total time
spent decoding frames.
The loop before the change:
movzwl 0x8(%r15), %edx # load ref_frame
addq $0xc, %rax
movw %dx, -0x4(%rax) # store ref_frame
movq 0xc(%r15), %rdx # load mv
movq %rdx, -0xc(%rax) # store mv
cmpq %rax, %rcx
jne -0x1a
The loop after the change:
movw %r9w, 0x8(%rax) # store cached ref_frame
addq $0xc, %rax
movq %r8, -0xc(%rax) # store cached mv
cmpq %rax, %rdx
jne -0x12
Change-Id: Ia1e9634bcabb4d7e06ed60f470bc4cd67f5ab27e
Diffstat (limited to 'test/simple_encode_test.cc')
0 files changed, 0 insertions, 0 deletions