summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQiang Yu <yuq825@gmail.com>2017-10-13 17:47:16 +0800
committerQiang Yu <yuq825@gmail.com>2017-10-13 18:56:44 +0800
commit821c3017cb458b161d9390966461c464b1358721 (patch)
tree1d32dd9b4da33c70437acea5cc656ff8fe69c7c2
parent2fe255bc82c859ecb140d399c26a773e17652acb (diff)
lima/gpir: print more info when fail to schedule a node
Signed-off-by: Qiang Yu <yuq825@gmail.com>
-rw-r--r--src/gallium/drivers/lima/ir/gp/scheduler.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gallium/drivers/lima/ir/gp/scheduler.c b/src/gallium/drivers/lima/ir/gp/scheduler.c
index 9ac9858b0e..ab1dedcf54 100644
--- a/src/gallium/drivers/lima/ir/gp/scheduler.c
+++ b/src/gallium/drivers/lima/ir/gp/scheduler.c
@@ -816,6 +816,28 @@ static bool gpir_schedule_node(gpir_block *block, gpir_node *node)
fprintf(stderr, "gpir: fail to schedule node %s %d\n",
gpir_op_infos[node->op].name, node->index);
+
+ /* print failed node's successors until none-sigle successor */
+ fprintf(stderr, "gpir: successors");
+ gpir_node *next = node;
+ while (true) {
+ if (next->succs->entries > 1)
+ fprintf(stderr, " |");
+
+ gpir_node *succ = NULL;
+ gpir_node_foreach_succ(next, entry) {
+ succ = gpir_node_from_entry(entry, succ);
+ fprintf(stderr, " %d", succ->index);
+ }
+
+ if (next->succs->entries > 1 || !succ)
+ break;
+ else
+ next = succ;
+ }
+ fprintf(stderr, "\n");
+
+ gpir_instr_print_prog(block->comp);
return false;
}