}
void
-bblock_t::dump(backend_visitor *v) const
+bblock_t::dump(backend_shader *s) const
{
int ip = this->start_ip;
foreach_inst_in_block(backend_instruction, inst, this) {
fprintf(stderr, "%5d: ", ip);
- v->dump_instruction(inst);
+ s->dump_instruction(inst);
ip++;
}
}
cur_else = cur;
next = new_block();
+ assert(cur_if != NULL);
cur_if->add_successor(mem_ctx, next);
set_next_block(&cur, next, ip);
if (cur_else) {
cur_else->add_successor(mem_ctx, cur_endif);
} else {
+ assert(cur_if != NULL);
cur_if->add_successor(mem_ctx, cur_endif);
}
inst->exec_node::remove();
cur->instructions.push_tail(inst);
+ assert(cur_do != NULL);
cur->add_successor(mem_ctx, cur_do);
next = new_block();
inst->exec_node::remove();
cur->instructions.push_tail(inst);
+ assert(cur_while != NULL);
cur->add_successor(mem_ctx, cur_while);
next = new_block();
inst->exec_node::remove();
cur->instructions.push_tail(inst);
+ assert(cur_do != NULL && cur_while != NULL);
cur->add_successor(mem_ctx, cur_do);
set_next_block(&cur, cur_while, ip);
}
void
-cfg_t::dump(backend_visitor *v)
+cfg_t::dump(backend_shader *s)
{
if (idom_dirty)
calculate_idom();
link->block->num);
}
fprintf(stderr, "\n");
- if (v != NULL)
- block->dump(v);
+ if (s != NULL)
+ block->dump(s);
fprintf(stderr, "END B%d", block->num);
foreach_list_typed(bblock_link, link, link, &block->children) {
fprintf(stderr, " ->B%d",
}
printf("}\n");
}
+
+void
+cfg_t::dump_domtree()
+{
+ printf("digraph DominanceTree {\n");
+ foreach_block(block, this) {
+ printf("\t%d -> %d\n", block->idom->num, block->num);
+ }
+ printf("}\n");
+}