i965/fs: Remove pre-Gen7 register allocation class micro-optimization.
authorFrancisco Jerez <currojerez@riseup.net>
Sun, 1 May 2016 03:47:49 +0000 (20:47 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Sat, 28 May 2016 06:29:06 +0000 (23:29 -0700)
commit7f10d3983b1ef1bafbbb694c29430556122f4536
tree78d22fe2bed716bb2749ccc70ab0332896be3e5a
parent1d5bf46ad1533ffdb30b5dc0f9244f60b0539285
i965/fs: Remove pre-Gen7 register allocation class micro-optimization.

This was trying to save some one-time init on pre-Gen7 hardware under
the assumption that one would only ever need 1, 2, 4 and 8-wide
registers on those platforms.  However nothing guarantees that those
will be the only VGRF sizes used after lowering and optimization.  In
some cases we may end up with a temporary of different size being
allocated (e.g. by SIMD lowering to zip or unzip a multi-component
register region of a logical send instruction), and there is no
guarantee that they will be optimized away before register allocation
(especially since the compute_to_mrf coalescing pass is
rather... lacking...).  Instead just allocate classes for all possible
VGRF sizes up to MAX_VGRF_SIZE to avoid a crash in pq_test() when we
encounter a variable of any other size.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp