i965/fs: Add code to print out global copy propagation sets.
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 <kenneth@whitecape.org> Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user