[cairo] JIT for pixman

Behdad Esfahbod behdad at behdad.org
Sat Jan 10 12:19:12 PST 2009


keita abdoul-kaker wrote:
> Can't we use a static compiler to all those transformation and
> optimisation at compile time ?

Jeff played with that idea.  You can find that in list archives.  IIRC the
generated binary was huge.  900K larger than current pixman, and I'm sure that
didn't include code for all the different SIMD architectures.

behdad

> On Sat, Jan 10, 2009 at 11:18 AM, Soeren Sandmann <sandmann at daimi.au.dk> wrote:
>> Bobby Salazar <bobby8934 at inbox.com> writes:
>>
>>> Could someone please explain the benefits of JIT for pixman? I seen
>>> a lot of talk about the best ways to approach JIT for pixman, but I
>>> so far haven't been able to figure out what the benefits are? Does
>>> it yield faster code/better performance for pixman, or easier
>>> maintainability?
>> A JIT compiler can potentially yield both better performance and
>> better maintainability.
>>
>> There are a lot of combinations of formats and operators. It is true
>> that only relatively few of them show up in any given app/environment,
>> and we do have reasonably optimized versions of many common ones.
>>
>> But it is still possible to do a lot better. At the moment anything
>> involving transformations or filters hits the slow path. Anything
>> involving formats other than a8, argb32 and rgb16 hits the slow
>> path. Anything involving operators outside OVER, IN, and ADD are hits
>> the slow path.
>>
>> It is not going to be possible to cover all those combinations with
>> handwritten fast paths, especially considering that there are plans to
>> add more operators and that correct color management will require more
>> image formats.
>>
>> Also, there is a ton of SIMD instruction sets. Just for x86 the
>> currently available ones are: MMX, 3DNow!, SSE, SSE2, SSE3, SSE4,
>> SSE4.1, and SSE4.2. The announced ones are SSE5, AVX, and
>> Larrabee. There is also Altivec for PowerPC, and I believe two
>> different ones for ARM.
>>
>> Putting all of these instruction sets to use without a JIT compiler is
>> essentially impossible.
>>
>>
>> Soren
>> _______________________________________________
>> cairo mailing list
>> cairo at cairographics.org
>> http://lists.cairographics.org/mailman/listinfo/cairo
>>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
> 


More information about the cairo mailing list