Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / intel / compiler / brw_fs_saturate_propagation.cpp
index fe3fa7ecfead186d045df231f9b67f32baa698cc..50c3fc19f3beedba8dab8dded8973751a02c49e6 100644 (file)
@@ -25,6 +25,8 @@
 #include "brw_fs_live_variables.h"
 #include "brw_cfg.h"
 
+using namespace brw;
+
 /** @file brw_fs_saturate_propagation.cpp
  *
  * Implements a pass that propagates the SAT modifier from a MOV.SAT into the
@@ -43,8 +45,7 @@
  */
 
 static bool
-opt_saturate_propagation_local(fs_visitor *v, bblock_t *block,
-                               unsigned dispatch_width)
+opt_saturate_propagation_local(const fs_live_variables &live, bblock_t *block)
 {
    bool progress = false;
    int ip = block->end_ip + 1;
@@ -60,15 +61,15 @@ opt_saturate_propagation_local(fs_visitor *v, bblock_t *block,
           inst->src[0].abs)
          continue;
 
-      int src_var = v->live_intervals->var_from_reg(inst->src[0]);
-      int src_end_ip = v->live_intervals->end[src_var];
+      int src_var = live.var_from_reg(inst->src[0]);
+      int src_end_ip = live.end[src_var];
 
       bool interfered = false;
       foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
          if (scan_inst->exec_size == inst->exec_size &&
              regions_overlap(scan_inst->dst, scan_inst->size_written,
                              inst->src[0], inst->size_read(0))) {
-            if (scan_inst->is_partial_var_write(dispatch_width) ||
+            if (scan_inst->is_partial_write() ||
                 (scan_inst->dst.type != inst->dst.type &&
                  !scan_inst->can_change_types()))
                break;
@@ -150,12 +151,11 @@ opt_saturate_propagation_local(fs_visitor *v, bblock_t *block,
 bool
 fs_visitor::opt_saturate_propagation()
 {
+   const fs_live_variables &live = live_analysis.require();
    bool progress = false;
 
-   calculate_live_intervals();
-
    foreach_block (block, cfg) {
-      progress = opt_saturate_propagation_local(this, block, dispatch_width) || progress;
+      progress = opt_saturate_propagation_local(live, block) || progress;
    }
 
    /* Live intervals are still valid. */