vc4: Print live variable start/ends during QIR dumping.
This only happens when live variables are set up, which is not in the normal dump, but is set up when we've failed to register allocate.
This commit is contained in:
parent
89918c1e74
commit
6d34345001
|
@ -361,11 +361,56 @@ qir_dump_inst(struct vc4_compile *c, struct qinst *inst)
|
||||||
void
|
void
|
||||||
qir_dump(struct vc4_compile *c)
|
qir_dump(struct vc4_compile *c)
|
||||||
{
|
{
|
||||||
|
int ip = 0;
|
||||||
|
|
||||||
qir_for_each_block(block, c) {
|
qir_for_each_block(block, c) {
|
||||||
fprintf(stderr, "BLOCK %d:\n", block->index);
|
fprintf(stderr, "BLOCK %d:\n", block->index);
|
||||||
qir_for_each_inst(inst, block) {
|
qir_for_each_inst(inst, block) {
|
||||||
|
if (c->temp_start) {
|
||||||
|
bool first = true;
|
||||||
|
|
||||||
|
for (int i = 0; i < c->num_temps; i++) {
|
||||||
|
if (c->temp_start[i] != ip)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (first) {
|
||||||
|
first = false;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, ", ");
|
||||||
|
}
|
||||||
|
fprintf(stderr, "S%4d", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
fprintf(stderr, " ");
|
||||||
|
else
|
||||||
|
fprintf(stderr, " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c->temp_end) {
|
||||||
|
bool first = true;
|
||||||
|
|
||||||
|
for (int i = 0; i < c->num_temps; i++) {
|
||||||
|
if (c->temp_end[i] != ip)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (first) {
|
||||||
|
first = false;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, ", ");
|
||||||
|
}
|
||||||
|
fprintf(stderr, "E%4d", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
fprintf(stderr, " ");
|
||||||
|
else
|
||||||
|
fprintf(stderr, " ");
|
||||||
|
}
|
||||||
|
|
||||||
qir_dump_inst(c, inst);
|
qir_dump_inst(c, inst);
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
|
ip++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue