Mesa (master): i965/cfg: Add function to generate a dot file of the CFG.

Matt Turner mattst88 at kemper.freedesktop.org
Wed Feb 18 04:44:56 UTC 2015


Module: Mesa
Branch: master
Commit: b06eef05d040ffcfe5a203387b1c4b5b0b32848a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b06eef05d040ffcfe5a203387b1c4b5b0b32848a

Author: Matt Turner <mattst88 at gmail.com>
Date:   Wed Feb 26 16:07:52 2014 -0800

i965/cfg: Add function to generate a dot file of the CFG.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_cfg.cpp |   14 ++++++++++++++
 src/mesa/drivers/dri/i965/brw_cfg.h   |    1 +
 2 files changed, 15 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp
index b8e5e2e..e094a88 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.cpp
+++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp
@@ -495,3 +495,17 @@ cfg_t::intersect(bblock_t *b1, bblock_t *b2)
    assert(b1);
    return b1;
 }
+
+void
+cfg_t::dump_cfg()
+{
+   printf("digraph CFG {\n");
+   for (int b = 0; b < num_blocks; b++) {
+      bblock_t *block = this->blocks[b];
+
+      foreach_list_typed_safe (bblock_link, child, link, &block->children) {
+         printf("\t%d -> %d\n", b, child->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 215f248..4d4eb2d 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.h
+++ b/src/mesa/drivers/dri/i965/brw_cfg.h
@@ -274,6 +274,7 @@ struct cfg_t {
    static bblock_t *intersect(bblock_t *b1, bblock_t *b2);
 
    void dump(backend_visitor *v);
+   void dump_cfg();
 #endif
    void *mem_ctx;
 




More information about the mesa-commit mailing list