i965/vec4: prevent src/dst hazards during 64-bit register allocation
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 1 Sep 2016 12:23:26 +0000 (14:23 +0200)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Tue, 3 Jan 2017 10:26:51 +0000 (11:26 +0100)
commit73610384a8357287cef64434c789ff03c2f6f37a
treedde0befc443f10baa48c403369893199fca0602d
parent2b57adad0056273e38d9a9736cd98be95c0deb07
i965/vec4: prevent src/dst hazards during 64-bit register allocation

8-wide compressed DF operations are executed as two separate 4-wide
DF operations. In that scenario, we have to be careful when we allocate
register space for their operands to prevent the case where the first
half of the instruction overwrites the source of the second half.

To do this we mark compressed instructions as having hazards to make
sure that ther register allocators assigns a register regions for the
destination that does not overlap with the region assigned for any
of its source operands.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_vec4.cpp