[Mesa-dev] [PATCH 0/5] Some register allocation improvements

Jason Ekstrand jason at jlekstrand.net
Fri Jul 31 10:05:25 PDT 2015


The following 5 patches contain a few register allocation cleanups and
performance improvements.  Chris Wilson noticed that setting up register
sets on i965 calls reralloc an absurd number of times.  I did a little
hacking and found out that the initial size for the collision lists is way
too low.  This series also contains a patch to avoid setting up registers
more times than needed on platforms where RA is the same for SIMD8 vs
SIMD16.

The whole series seems to cut about 4 minutes off a piglit run on BYT.  It
usually takes around 31 minutes and this time it ran in 27.

Jason Ekstrand (5):
  ra: Refactor ra_set_finalize
  ra: Delete the conflict lists in ra_set_finalize
  ra: Allocate bigger initial conflict lists
  i965/fs: Use dispatch_width instead of reg_width in alloc_reg_sets
  i965/fs: Don't do redundant RA setup on IVB+

 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 25 ++++++----
 src/util/register_allocate.c                      | 58 ++++++++++++-----------
 2 files changed, 48 insertions(+), 35 deletions(-)

-- 
2.4.3



More information about the mesa-dev mailing list