r600g/sb: improve alu packing on cayman
authorVadim Girlin <vadimgirlin@gmail.com>
Wed, 17 Jul 2013 14:29:56 +0000 (18:29 +0400)
committerVadim Girlin <vadimgirlin@gmail.com>
Wed, 17 Jul 2013 14:29:56 +0000 (18:29 +0400)
commit07baf9cfd16b38872be952382ae5a705057cbec2
tree984159e130f9228e113b48253d4941505135e090
parentba7fa4c4c93e67fec798d837005a3041adda3d5b
r600g/sb: improve alu packing on cayman

Scheduler/register allocator in r600-sb was developed and optimized
on evergreen (VLIW-5) hardware, so currently it's not optimal for
VLIW-4 chips.
This patch should improve performance on cayman gpus due to better alu
packing, but also it tends to increase register usage, so overall positive
effect on performance has to be proven by real benchmarks yet.

Some results with bfgminer kernel on cayman:
source bytecode:       60 gprs, 3905 alu groups,
sbcl before the patch: 45 gprs, 4088 alu groups,
sbcl with this patch:  55 gprs, 3474 alu groups.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
src/gallium/drivers/r600/sb/sb_pass.h
src/gallium/drivers/r600/sb/sb_ra_init.cpp