[Mesa-dev] [PATCH 01/15] i965/cfg: Add code to dump blocks and cfg.
Matt Turner
mattst88 at gmail.com
Mon Dec 2 10:40:23 PST 2013
---
src/mesa/drivers/dri/i965/brw_cfg.cpp | 34 ++++++++++++++++++++++++++++++++++
src/mesa/drivers/dri/i965/brw_cfg.h | 3 +++
2 files changed, 37 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp
index e9d2bb8..cfe43d2 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.cpp
+++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp
@@ -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");
+ }
+}
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.h b/src/mesa/drivers/dri/i965/brw_cfg.h
index ec5a3a0..e667d22 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.h
+++ b/src/mesa/drivers/dri/i965/brw_cfg.h
@@ -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.
--
1.8.3.2
More information about the mesa-dev
mailing list