[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