[FFmpeg-devel] [PATCH 3/3] two functions were declared inlinebut were referenced elsewhere

Michael Niedermayer michaelni at gmx.at
Thu Jun 14 02:09:13 CEST 2012


On Thu, Jun 14, 2012 at 01:16:16AM +0200, J. Bohl wrote:
> Hi,
> 
> >iam a bit affraid this could cause a slowdown. did you check what
> effect this change has 
> >on compilers supporting the code currently ?
> 
> No, sorry I am not able to quantify the impact of this change at this
> point. At least not with tangible numbers, with a quick transcoding run
> (Linux x86, gcc4.6) I didn't notice a (significant) difference.
> Maybe you like the attached revised patch better - having two functions,
> one that is attributed inline and one for external reference.
> 
> >changing all MANGLE() to "m" will break compilation on several
> compilers
> 
> Yeah, I understand this. And cluttering the code with #ifdef's would be
> a mess I suppose. OK, then can't help it.
> 
> >isnt icc able to optimize this out with some command line switches ?
> >under linux ICC is able to do such elimination of calls ...
> >if it really doesnt work its maybe worth to report to intel if it hasnt
> been reported yet. Intel 
> >is likely interrested to improve ICCs dead code elimination.
> 
> Good idea, I didn't think of that. I'll check this out. I seem to
> remember that it is a compatibility issue (compatibility with the
> Microsoft compiler).
> 
> Regards,
> 
> Juergen
> 

>  motion_est.c          |   27 ++++++++++++++++++++-------
>  motion_est_template.c |    4 ++--
>  2 files changed, 22 insertions(+), 9 deletions(-)
> dd4877673d834fdafc7b9ca55debd9385da11625  0004-revised-patch-for-ff_get_mb_score-ff_epzs_motion_sea.patch
> From fedc50c96aa9d909bc2e93566c77643b82235455 Mon Sep 17 00:00:00 2001
> From: "J. Bohl" <jbohl at h-quer.de>
> Date: Thu, 14 Jun 2012 00:31:28 +0200
> Subject: [PATCH 4/4] revised patch for ff_get_mb_score &
>  ff_epzs_motion_search declared inline, but referenced
>  elsewhere

I think it would be better to have a
av_extern_inline and something like:

#ifndef av_extern_inline
# if whatever
#  define av_extern_inline
# else
#  define av_extern_inline inline
# endif
#endif

in libavutil/attributes.h

The semantics simply differ a bit between C99, and various compilers
In theory we could use extern inline but i doubt it would work with
all compilers.

[...]

thanks

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120614/742ee689/attachment.asc>


More information about the ffmpeg-devel mailing list