Wed Jul 11 11:37:24 CEST 2007
On Wed, 2007-07-11 at 09:37 +0200, Reimar Doeffinger wrote:
> On Wed, Jul 11, 2007 at 02:33:49AM +0300, Uoti Urpala wrote:
> > for an example of cleaning up asm and removing MANGLE. I'm not sure what
> > you mean by "less than ideal" here; using an "m" constraint with the
> > same parameter will generally result in the same kind of memory access
> > as MANGLE.
> This is assuming the compiler isn't utterly stupid or simply broken, which
> is quite a strong assumption to make...
> I don't really object to trying it out, but if someone embarks on the
> mission to convert all of the code at once it might end up a huge waste
> of time if we find it it actually doesn't work as great as some people
A while ago I also tried changing cabac.h, removing all uses of MANGLE,
using different constraints instead of the "memory" clobbers and
removing the "volatile" specifiers from the asms. The result seems to
work fine under gcc 4.1, gcc 4.2 and icc. It's also a little bit faster
under gcc 4.2, though not a big difference.
Btw overall I get 5% better h264 performance than stock FFmpeg on a file
I usually benchmark with (compiled with gcc 4.2). Most of that is due to
forcing/disabling inlining of various functions. Cleaning up the changes
would take some work though, and I don't know whether the effects would
be the same on other processors/compilers.
More information about the ffmpeg-devel