summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2017-04-20 11:44:01 -0700
committerFrancisco Jerez <[email protected]>2017-04-24 10:59:56 -0700
commitecc19e12dca95d2571d3761dea6dec24b061013c (patch)
treea59f48a4447c6353b652e15e7f9eb25d9a098e61
parent6b10c37b9c3a73add73f444fe1aee73c9ec82c94 (diff)
intel/fs: Use regs_written() in spilling cost heuristic for improved accuracy.
This is what we use later on to compute the number of registers that will actually get spilled to memory, so it's more likely to match reality than the current open-coded approximation. Cc: <[email protected]> Reviewed-by: Plamena Manolova <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r--src/intel/compiler/brw_fs_reg_allocate.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/intel/compiler/brw_fs_reg_allocate.cpp b/src/intel/compiler/brw_fs_reg_allocate.cpp
index c981d72e4f2..2d4d46ef334 100644
--- a/src/intel/compiler/brw_fs_reg_allocate.cpp
+++ b/src/intel/compiler/brw_fs_reg_allocate.cpp
@@ -826,8 +826,7 @@ fs_visitor::choose_spill_reg(struct ra_graph *g)
}
if (inst->dst.file == VGRF)
- spill_costs[inst->dst.nr] += DIV_ROUND_UP(inst->size_written, REG_SIZE)
- * block_scale;
+ spill_costs[inst->dst.nr] += regs_written(inst) * block_scale;
switch (inst->opcode) {