i965/nir/vec4: Add get_nir_dst() and get_nir_src() methods
[mesa.git] / src / mesa / drivers / dri / i965 / brw_fs_dead_code_eliminate.cpp
index 81be4def30b3ba122ee18cd4accb62da376f8b11..4b5548a9dc561403c54131e0cdc5678eaaeb6ace 100644 (file)
@@ -85,6 +85,17 @@ fs_visitor::dead_code_eliminate()
             }
          }
 
+         if ((inst->opcode != BRW_OPCODE_IF &&
+              inst->opcode != BRW_OPCODE_WHILE) &&
+             inst->dst.is_null() &&
+             !inst->has_side_effects() &&
+             !inst->writes_flag() &&
+             !inst->writes_accumulator) {
+            inst->opcode = BRW_OPCODE_NOP;
+            progress = true;
+            continue;
+         }
+
          if (inst->dst.file == GRF) {
             if (!inst->is_partial_write()) {
                int var = live_intervals->var_from_reg(inst->dst);
@@ -102,7 +113,7 @@ fs_visitor::dead_code_eliminate()
             if (inst->src[i].file == GRF) {
                int var = live_intervals->var_from_reg(inst->src[i]);
 
-               for (int j = 0; j < inst->regs_read(this, i); j++) {
+               for (int j = 0; j < inst->regs_read(i); j++) {
                   BITSET_SET(live, var + j);
                }
             }