i965: Print instructions' children during scheduling debugging.

Useful for tracking down problems in dependency calculations.

Scheduling debugging now prints:

clock    2, scheduled: linterp vgrf5, hw_reg2, hw_reg3, hw_reg0,
        child 0, 53 parents: fb_write (null), (null), (null), (null),
        child 1, 2 parents: tex vgrf4, vgrf5, (null), (null),
        child 2, 52 parents: placeholder_halt (null), (null), (null), (null),
clock    4, scheduled: linterp vgrf5+1, hw_reg2, hw_reg3, hw_reg0+16,
        child 0, 52 parents: fb_write (null), (null), (null), (null),
        child 1, 1 parents: tex vgrf4, vgrf5, (null), (null),
                now available
        child 2, 51 parents: placeholder_halt (null), (null), (null), (null),

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Matt Turner 2013-10-08 23:03:41 -07:00
parent 40ddd8b659
commit 7d0519c082

View file

@ -1065,11 +1065,15 @@ instruction_scheduler::schedule_instructions(backend_instruction *next_block_hea
child->unblocked_time = MAX2(child->unblocked_time,
time + chosen->child_latency[i]);
if (debug) {
printf("\tchild %d, %d parents: ", i, child->parent_count);
bv->dump_instruction(child->inst);
}
child->parent_count--;
if (child->parent_count == 0) {
if (debug) {
printf("now available: ");
bv->dump_instruction(child->inst);
printf("\t\tnow available\n");
}
instructions.push_tail(child);
}