i965/cfg: Add code to dump blocks and cfg.

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Matt Turner 2013-11-28 11:03:14 -08:00
parent fa1923ac3a
commit 51194932d3
2 changed files with 37 additions and 0 deletions

View file

@ -67,6 +67,19 @@ bblock_t::make_list(void *mem_ctx)
return new(mem_ctx) bblock_link(this);
}
void
bblock_t::dump(backend_visitor *v)
{
int ip = this->start_ip;
for (backend_instruction *inst = (backend_instruction *)this->start;
inst != this->end->next;
inst = (backend_instruction *) inst->next) {
printf("%5d: ", ip);
v->dump_instruction(inst);
ip++;
}
}
cfg_t::cfg_t(backend_visitor *v)
{
create(v->mem_ctx, &v->instructions);
@ -261,3 +274,24 @@ cfg_t::make_block_array()
}
assert(i == num_blocks);
}
void
cfg_t::dump(backend_visitor *v)
{
for (int b = 0; b < this->num_blocks; b++) {
bblock_t *block = this->blocks[b];
printf("START B%d", b);
foreach_list(node, &block->parents) {
bblock_link *link = (bblock_link *)node;
printf(" <-B%d", link->block->block_num);
}
printf("\n");
block->dump(v);
printf("END B%d", b);
foreach_list(node, &block->children) {
bblock_link *link = (bblock_link *)node;
printf(" ->B%d", link->block->block_num);
}
printf("\n");
}
}

View file

@ -46,6 +46,7 @@ public:
bblock_t();
void add_successor(void *mem_ctx, bblock_t *successor);
void dump(backend_visitor *v);
backend_instruction *start;
backend_instruction *end;
@ -72,6 +73,8 @@ public:
void set_next_block(bblock_t *block);
void make_block_array();
void dump(backend_visitor *v);
/** @{
*
* Used while generating the block list.