On Sat, Aug 15, 2015 at 11:31 AM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > This series was inspired by a patch from Chris Willson entitled > "util/register_allocate: Compute transitive conflicts using 2-passes" > > The basic idea is the same: Instead of marking transitive conflicts as you > go, just mark conflicts with the base register up-front and apply > transitivity later. One nice result of this is that with this and > pre-calculated q-values, we can get rid of the expensive conflict lists > that we build inside the allocator. This takes a full piglit run on 32-bit > baytrail from about 28 minutes to 22 due to the reduction in screen > creation time. > > The last patch makes BITSET_WORD a 64-bit value on 64-bit systems. I don't > actually have perf numbers for that, but it should help ra setup as well as > liveness analysis and a whole host of other compiler tasks.
Scratch the last two. It turns out they hurt *a lot*. Screen creation takes 2.5x as long with the last patch. I have no idea why yet. > Cc: Chris Wilson <ch...@chris-wilson.co.uk> > Cc: Eric Anholt <e...@anholt.net> > > Jason Ekstrand (6): > util/bitset: Add a BITSET_FOREACH_SET macro > util/ra: Add a function for making all conflicts on a register > transitive > i965/reg_allocate: Use make_reg_conflicts_transitive > util/ra: Make allocating conflict lists optional > gallium/util: Add an implementation of ffsl > util/bitset: Use a long for bitset words > > src/gallium/auxiliary/util/u_math.h | 12 ++++++ > src/gallium/drivers/freedreno/ir3/ir3_ra.c | 2 +- > .../drivers/r300/compiler/radeon_pair_regalloc.c | 3 +- > src/gallium/drivers/vc4/vc4_register_allocate.c | 2 +- > src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 12 ++++-- > .../drivers/dri/i965/brw_vec4_reg_allocate.cpp | 7 +++- > src/util/bitset.h | 37 +++++++++++++++- > src/util/register_allocate.c | 49 > ++++++++++++++++++---- > src/util/register_allocate.h | 4 +- > 9 files changed, 109 insertions(+), 19 deletions(-) > > -- > 2.4.3 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev