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
1 file changed