Commit b579af77 authored by Vasily Khoruzhick's avatar Vasily Khoruzhick

lima/ppir: print srcs and dests in ppir_node_print_prog()

Now we have an accessors for ppir src, so it's possible to easily
print all srcs and dests while dumping ppir representation.
Reviewed-by: Qiang Yu's avatarQiang Yu <yuq825@gmail.com>
Signed-off-by: Vasily Khoruzhick's avatarVasily Khoruzhick <anarsoul@gmail.com>
parent 6920710a
Pipeline #56196 passed with stages
in 12 minutes and 47 seconds
......@@ -479,12 +479,66 @@ void ppir_node_delete(ppir_node *node)
ralloc_free(node);
}
static void ppir_node_print_dest(ppir_dest *dest)
{
switch (dest->type) {
case ppir_target_ssa:
printf("ssa%d", dest->ssa.index);
break;
case ppir_target_pipeline:
printf("pipeline %d", dest->pipeline);
break;
case ppir_target_register:
printf("reg %d", dest->reg->index);
break;
}
}
static void ppir_node_print_src(ppir_src *src)
{
switch (src->type) {
case ppir_target_ssa: {
if (src->node)
printf("ssa node %d", src->node->index);
else
printf("ssa idx %d", src->ssa ? src->ssa->index : -1);
break;
}
case ppir_target_pipeline:
if (src->node)
printf("pipeline %d node %d", src->pipeline, src->node->index);
else
printf("pipeline %d", src->pipeline);
break;
case ppir_target_register:
printf("reg %d", src->reg->index);
break;
}
}
static void ppir_node_print_node(ppir_node *node, int space)
{
for (int i = 0; i < space; i++)
printf(" ");
printf("%s%s %d %s\n", node->printed && !ppir_node_is_leaf(node) ? "+" : "",
ppir_op_infos[node->op].name, node->index, node->name);
printf("%s%d: %s %s: ", node->printed && !ppir_node_is_leaf(node) ? "+" : "",
node->index, ppir_op_infos[node->op].name, node->name);
ppir_dest *dest = ppir_node_get_dest(node);
if (dest) {
printf("dest: ");
ppir_node_print_dest(dest);
}
if (ppir_node_get_src_num(node) > 0) {
printf(" src: ");
}
for (int i = 0; i < ppir_node_get_src_num(node); i++) {
ppir_node_print_src(ppir_node_get_src(node, i));
if (i != (ppir_node_get_src_num(node) - 1))
printf(", ");
}
printf("\n");
if (!node->printed) {
ppir_node_foreach_pred(node, dep) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment