[FFmpeg-devel] [PATCH] x86: hevc_mc: better register allocation
Michael Niedermayer
michaelni at gmx.at
Sat May 17 22:44:14 CEST 2014
On Sat, May 17, 2014 at 04:58:03PM +0200, Christophe Gisquet wrote:
> Hi,
>
> this is more a proof of concept to show that the register allocation
> can be improved. This is the first simple example I found, albeit used
> only in a few cases.
>
> Benchmark under Win64:
> before:
> 3872 decicycles in a32, 32761 runs, 7 skips
> 2194 decicycles in a16, 32766 runs, 2 skips
>
> after:
> 3767 decicycles in a32, 32765 runs, 3 skips
> 2119 decicycles in a16, 32767 runs, 1 skips
>
> --
> Christophe
> hevc_mc.asm | 25 +++++++++++++++----------
> 1 file changed, 15 insertions(+), 10 deletions(-)
> ac2b6342290efd636fc0e056bfd73c79fadaf405 0001-x86-hevc-dsp-better-register-allocation.patch
> From 564520f258c1fd0f14e8f7f55fa5136d996ec62f Mon Sep 17 00:00:00 2001
> From: Christophe Gisquet <christophe.gisquet at gmail.com>
> Date: Sat, 17 May 2014 12:22:39 +0200
> Subject: [PATCH] x86: hevc dsp: better register allocation
>
> The xmm reg count was incorrect, and manual loading of the gprs
> furthermore allow to noticeable reduce the number needed.
>
> The modified function is used in weighted prediction, so only a few
> samples like WP_A_Toshiba_3.bit exhibit a change. For this one and
> Win64 (24 and 48 widths removed because of too few occurrences):
>
> before:
> 3872 decicycles in a32, 32761 runs, 7 skips
> 2194 decicycles in a16, 32766 runs, 2 skips
>
> after:
> 3767 decicycles in a32, 32765 runs, 3 skips
> 2119 decicycles in a16, 32767 runs, 1 skips
> ---
> libavcodec/x86/hevc_mc.asm | 25 +++++++++++++++----------
> 1 file changed, 15 insertions(+), 10 deletions(-)
fails to build
libavcodec/x86/hevc_mc.asm:1195: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1195: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1196: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1196: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1197: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1197: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1198: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1198: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1200: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1200: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1201: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1201: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1202: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1202: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1203: error: invalid size for operand 1
libavcodec/x86/hevc_mc.asm:1203: error: invalid size for operand 1
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If you think the mosad wants you dead since a long time then you are either
wrong or dead since a long time.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140517/2967b563/attachment.asc>
More information about the ffmpeg-devel
mailing list