I think this was used for coalescing out partly dead large virtual registers, but the patch that enabled that caused regressions and didn't make it upstream. --- src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp b/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp index 5c16798..35ef3ff 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp @@ -158,11 +158,8 @@ fs_visitor::register_coalesce() if (channels_remaining) continue; - bool removed = false; for (int i = 0; i < src_size; i++) { if (mov[i]) { - removed = true; - mov[i]->opcode = BRW_OPCODE_NOP; mov[i]->conditional_mod = BRW_CONDITIONAL_NONE; mov[i]->dst = reg_undef; @@ -195,13 +192,11 @@ fs_visitor::register_coalesce() } } - if (removed) { - live_intervals->start[var_to] = MIN2(live_intervals->start[var_to], - live_intervals->start[var_from]); - live_intervals->end[var_to] = MAX2(live_intervals->end[var_to], - live_intervals->end[var_from]); - reg_from = -1; - } + live_intervals->start[var_to] = MIN2(live_intervals->start[var_to], + live_intervals->start[var_from]); + live_intervals->end[var_to] = MAX2(live_intervals->end[var_to], + live_intervals->end[var_from]); + reg_from = -1; } foreach_list_safe(node, &this->instructions) { -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev