i965: Invalidate live intervals when inserting Gen4 SEND workarounds.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 9 Jun 2014 09:59:22 +0000 (02:59 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 10 Jun 2014 23:38:27 +0000 (16:38 -0700)
We need to invalidate the live intervals when inserting new
instructions.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/drivers/dri/i965/brw_fs.cpp

index b485e65adcf622447f332536a5a9c3ea8a6835fb..be461ac20c1b54a207f76849f8337d7487005c13 100644 (file)
@@ -2482,6 +2482,8 @@ fs_visitor::insert_gen4_send_dependency_workarounds()
    if (brw->gen != 4 || brw->is_g4x)
       return;
 
+   bool progress = false;
+
    /* Note that we're done with register allocation, so GRF fs_regs always
     * have a .reg_offset of 0.
     */
@@ -2492,8 +2494,12 @@ fs_visitor::insert_gen4_send_dependency_workarounds()
       if (inst->mlen != 0 && inst->dst.file == GRF) {
          insert_gen4_pre_send_dependency_workarounds(inst);
          insert_gen4_post_send_dependency_workarounds(inst);
+         progress = true;
       }
    }
+
+   if (progress)
+      invalidate_live_intervals();
 }
 
 /**