[Mesa-dev] Reducing GLSL compiler optimization time

Kenneth Graunke kenneth at whitecape.org
Sat Mar 12 11:30:10 PST 2011

On Friday, March 11, 2011 04:06:44 PM Eric Anholt wrote:
> With the conversion of texenvprogram to producing GLSL IR, all those
> nice little optimization passes end up slowing down our
> combinatorial-explosion ff tests pretty significantly.  This patch
> series reduces glean texCombine runtime overall by 20% on my gen6
> system.  The lowest-hanging fruit at this point looks like the
> register allocator setup, which I think a 1-entry cache would cut down
> pretty easily.

For patches 1-7:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

On patch 2, you can do better: ir_return and ir_call (to a void function) also 
unnecessarily descend into expression-land.

For patch 8, I don't see why you're using a hash table -and- a linked list.  
The hash table should be sufficient.  variable_entry also wouldn't need to 
inherit from exec_node at that point, though it -would- need an operator 
new...I've been meaning to add macros for that boilerplate in ralloc.

I don't really understand patch 9.
> Surprisingly enough, making the refcount visitor use a hash table
> didn't pay off in reducing its couple of percent, as the cost of
> alloc/free of the hash table was too high.  This branch is present as
> glsl-refcount-ht of my tree if you might have a workload where it
> helps -- it was a non-statistically-significant change here.

More information about the mesa-dev mailing list