summaryrefslogtreecommitdiff
path: root/test/simple_encode_test.cc
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2020-01-07 09:08:24 +0100
committerClement Courbet <courbet@google.com>2020-01-07 17:04:36 +0100
commitccb06a9fb15b9c10099cef28ff1240eb9ffa9390 (patch)
tree1508802084c4d934166494f3a5b9a06db2d9dc00 /test/simple_encode_test.cc
parent50d1a4aa725fbc78ee89ffde5e83b4ee4fe4893e (diff)
downloadlibvpx-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