i965/vec4: track and use independently each flag channel
authorAlejandro Piñeiro <apinheiro@igalia.com>
Wed, 14 Oct 2015 18:26:43 +0000 (20:26 +0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Thu, 22 Oct 2015 19:58:03 +0000 (21:58 +0200)
commita59359ecd22154cc2b3f88bb8c599f21af8a3934
treed62b6ae7088a1edeca6ec4df924136c200543dc5
parent8ac3b525c77cb5aae9e61bd984b78f6cbbffdc1c
i965/vec4: track and use independently each flag channel

vec4_live_variables tracks now each flag channel independently, so
vec4_dead_code_eliminate can update the writemask of null registers,
based on which component are alive at the moment. This would allow
vec4_cmod_propagation to optimize out several movs involving null
registers.

v2: added support to track each flag channel independently at vec4
    live_variables, as v1 assumed that it was already doing it, as
    pointed by Francisco Jerez
v3: general cleaningn after Matt Turner's review

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