This was invaluable when debugging the global copy propagation algorithm. We may as well commit it in case someone needs to print out the sets in the future.
Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- .../drivers/dri/i965/brw_fs_copy_propagation.cpp | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp index 7464498..2780ab6 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp @@ -83,6 +83,8 @@ public: void setup_initial_values(); void run(); + void dump_block_data() const; + void *mem_ctx; cfg_t *cfg; @@ -243,6 +245,34 @@ fs_copy_prop_dataflow::run() } while (progress); } +void +fs_copy_prop_dataflow::dump_block_data() const +{ + for (int b = 0; b < cfg->num_blocks; b++) { + bblock_t *block = cfg->blocks[b]; + printf("Block %d [%d, %d] (parents ", block->block_num, + block->start_ip, block->end_ip); + foreach_list(block_node, &block->parents) { + bblock_t *parent = ((bblock_link *) block_node)->block; + printf("%d ", parent->block_num); + } + printf("):\n"); + printf(" livein = 0x"); + for (int i = 0; i < bitset_words; i++) + printf("%08x", bd[b].livein[i]); + printf(", liveout = 0x"); + for (int i = 0; i < bitset_words; i++) + printf("%08x", bd[b].liveout[i]); + printf(",\n copy = 0x"); + for (int i = 0; i < bitset_words; i++) + printf("%08x", bd[b].copy[i]); + printf(", kill = 0x"); + for (int i = 0; i < bitset_words; i++) + printf("%08x", bd[b].kill[i]); + printf("\n"); + } +} + bool fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry) { -- 1.8.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev