[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-dev] liboil

From: Martin Guy
Subject: [Gnash-dev] liboil
Date: Sat, 9 Dec 2006 13:59:18 +0000

I've just been looking at liboil, the "Library of optimised inner
loops" with an idea to using it to speed cpu-intensive parts of gnash
up, but my impression is pretty negative.

The documentation is miserable: you cannot figure out how to use any
of their functions just by reading the documentation: many function
parameters are totally undocumented. There is no mention of whether
pointer parameters are used to return a single value or an array, no
adequate description (let alone an actual *definition*, which is what
the doc should be) of what any function does, no mention of what
enumerated or bitfield return values can have or mean. Function naming
is incoherent (add_f64 but sum_f32 - maybe the same function, maybe
not). Pathetic.

Then I looked at the code. Oh dear.
No accelleration for anything but mmx sse and other x86 friends. C
implementations make x86-specific assumptions about pointer values and
data layout. Unaligned data access is encouraged if it is possible,
not edge-trimmed and fixed. The thing coded as "duff's device" is not
duff's device, it is something else that looks similar. The
unaccellerated versions of code are less efficient than what I would
normally code in speed-optimised C, unless you happen to be using a
very intelligent compiler that put parameters in registers...

Nice idea. Maybe it will get better in a few years.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]