i965/fs: Invalidate live intervals in passes that remove an instruction.
authorEric Anholt <eric@anholt.net>
Tue, 5 Jun 2012 20:13:33 +0000 (13:13 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 6 Jul 2012 21:20:33 +0000 (14:20 -0700)
Since live intervals are based on ip, removing an instruction trashes
the intervals unless we were to go do some surgery.  These happen to
usually remove a use of a grf, so it's time to recalculate, anyway.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
NOTE: This is a candidate for the 8.0 release branch.

src/mesa/drivers/dri/i965/brw_fs.cpp

index 7c1096b775eb193a877800fecad5a86d76ebf1f1..175e36e4257f47ee54a8f036fc2f7825c15edae4 100644 (file)
@@ -1844,6 +1844,9 @@ fs_visitor::compute_to_mrf()
       }
    }
 
+   if (progress)
+      live_intervals_valid = false;
+
    return progress;
 }
 
@@ -1920,6 +1923,9 @@ fs_visitor::remove_duplicate_mrf_writes()
       }
    }
 
+   if (progress)
+      live_intervals_valid = false;
+
    return progress;
 }