i965/fs: Estimate number of registers written correctly in opt_register_renaming.
authorFrancisco Jerez <currojerez@riseup.net>
Tue, 26 Apr 2016 00:09:00 +0000 (17:09 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Sat, 28 May 2016 06:29:05 +0000 (23:29 -0700)
The current estimate is incorrect for non-32b types.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_fs.cpp

index 842af0172df7b1b93f17560108869bcb0f0098fc..b64ce4a0c174bfdecc9ffc2257117c4892868ee0 100644 (file)
@@ -2710,12 +2710,12 @@ fs_visitor::opt_register_renaming()
 
       if (depth == 0 &&
           inst->dst.file == VGRF &&
-          alloc.sizes[inst->dst.nr] == inst->exec_size / 8 &&
+          alloc.sizes[inst->dst.nr] == inst->regs_written &&
           !inst->is_partial_write()) {
          if (remap[dst] == -1) {
             remap[dst] = dst;
          } else {
-            remap[dst] = alloc.allocate(inst->exec_size / 8);
+            remap[dst] = alloc.allocate(inst->regs_written);
             inst->dst.nr = remap[dst];
             progress = true;
          }