[Mesa-dev] [PATCH] i965/fs: Add code to print out global copy propagation sets.

Paul Berry stereotype441 at gmail.com
Tue Aug 20 09:44:05 PDT 2013


On 18 August 2013 18:06, Kenneth Graunke <kenneth at whitecape.org> wrote:

> 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 at whitecape.org>
>

Reviewed-by: Paul Berry <stereotype441 at gmail.com>


> ---
>  .../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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130820/5f166a32/attachment.html>


More information about the mesa-dev mailing list