i965/fs: Use offset a lot more places
[mesa.git] / src / mesa / drivers / dri / i965 / brw_fs_cse.cpp
index 9db6865f589f6c421b50af69a4e0875d31dc8720..7edbe1915c2fdbbe2d45070c8a89c1daa2cbcddd 100644 (file)
@@ -212,10 +212,8 @@ fs_visitor::opt_cse_local(bblock_t *block)
                fs_inst *copy;
                if (written > 1) {
                   fs_reg *sources = ralloc_array(mem_ctx, fs_reg, written);
-                  for (int i = 0; i < written; i++) {
-                     sources[i] = tmp;
-                     sources[i].reg_offset = i;
-                  }
+                  for (int i = 0; i < written; i++)
+                     sources[i] = offset(tmp, i);
                   copy = LOAD_PAYLOAD(orig_dst, sources, written);
                } else {
                   copy = MOV(orig_dst, tmp);
@@ -235,10 +233,8 @@ fs_visitor::opt_cse_local(bblock_t *block)
                fs_inst *copy;
                if (written > 1) {
                   fs_reg *sources = ralloc_array(mem_ctx, fs_reg, written);
-                  for (int i = 0; i < written; i++) {
-                     sources[i] = tmp;
-                     sources[i].reg_offset = i;
-                  }
+                  for (int i = 0; i < written; i++)
+                     sources[i] = offset(tmp, i);
                   copy = LOAD_PAYLOAD(dst, sources, written);
                } else {
                   copy = MOV(dst, tmp);
@@ -254,12 +250,6 @@ fs_visitor::opt_cse_local(bblock_t *block)
             fs_inst *prev = (fs_inst *)inst->prev;
 
             inst->remove(block);
-
-            /* Appending an instruction may have changed our bblock end. */
-            if (inst == block->end) {
-               block->end = prev;
-            }
-
             inst = prev;
          }
       }
@@ -321,7 +311,7 @@ fs_visitor::opt_cse()
    }
 
    if (progress)
-      invalidate_live_intervals(false);
+      invalidate_live_intervals();
 
    return progress;
 }