i965/fs: Fix broken register spilling debug code.

Now that reg spilling generates new vgrfs, we were looping forever if you
ever turned it on.

Instead, move the debug code into the register allocator right near where
we'd be doing spilling anyway, which should more accurately reflect how
register spilling occurs in the wild.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
Eric Anholt
2013-10-16 12:02:41 -07:00
parent b3f6690406
commit 44ec2f1751
2 changed files with 11 additions and 7 deletions
-7
View File
@@ -3098,13 +3098,6 @@ fs_visitor::run()
assign_curb_setup();
assign_urb_setup();
if (0) {
/* Debug of register spilling: Go spill everything. */
for (int i = 0; i < virtual_grf_count; i++) {
spill_reg(i);
}
}
if (0)
assign_regs_trivial();
else {
@@ -476,6 +476,17 @@ fs_visitor::assign_regs()
if (brw->gen >= 7)
setup_mrf_hack_interference(g, first_mrf_hack_node);
/* Debug of register spilling: Go spill everything. */
if (0) {
int reg = choose_spill_reg(g);
if (reg != -1) {
spill_reg(reg);
ralloc_free(g);
return false;
}
}
if (!ra_allocate_no_spills(g)) {
/* Failed to allocate registers. Spill a reg, and the caller will
* loop back into here to try again.