summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/lima/ir/pp/node.c
diff options
context:
space:
mode:
authorVasily Khoruzhick <anarsoul@gmail.com>2019-08-18 23:37:23 -0700
committerVasily Khoruzhick <anarsoul@gmail.com>2019-08-24 08:17:31 -0700
commit28d4b456a582c1388fc3dde45e98cc97389485dc (patch)
tree2095737304fb69d3387ab0e3bf718565c16cbfc0 /src/gallium/drivers/lima/ir/pp/node.c
parent1cdf585613da37f23d737ac4713af0484d4a30d7 (diff)
downloadmesa-28d4b456a582c1388fc3dde45e98cc97389485dc.tar.gz
lima/ppir: add control flow support
This commit adds support for nir_jump_instr, if and loop nir_cf_nodes. Tested-by: Andreas Baierl <ichgeh@imkreisrum.de> Reviewed-by: Qiang Yu <yuq825@gmail.com> Reviewed-by: Erico Nunes <nunes.erico@gmail.com> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Diffstat (limited to 'src/gallium/drivers/lima/ir/pp/node.c')
-rw-r--r--src/gallium/drivers/lima/ir/pp/node.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/gallium/drivers/lima/ir/pp/node.c b/src/gallium/drivers/lima/ir/pp/node.c
index 59635df3cdf..db141cac5c1 100644
--- a/src/gallium/drivers/lima/ir/pp/node.c
+++ b/src/gallium/drivers/lima/ir/pp/node.c
@@ -469,6 +469,21 @@ void ppir_node_replace_pred(ppir_dep *dep, ppir_node *new_pred)
list_addtail(&dep->succ_link, &new_pred->succ_list);
}
+ppir_dep *ppir_dep_for_pred(ppir_node *node, ppir_node *pred)
+{
+ if (!pred)
+ return NULL;
+
+ if (node->block != pred->block)
+ return NULL;
+
+ ppir_node_foreach_pred(node, dep) {
+ if (dep->pred == pred)
+ return dep;
+ }
+ return NULL;
+}
+
void ppir_node_replace_all_succ(ppir_node *dst, ppir_node *src)
{
ppir_node_foreach_succ_safe(src, dep) {
@@ -573,7 +588,7 @@ void ppir_node_print_prog(ppir_compiler *comp)
printf("========prog========\n");
list_for_each_entry(ppir_block, block, &comp->block_list, list) {
- printf("-------block------\n");
+ printf("-------block %3d-------\n", block->index);
list_for_each_entry(ppir_node, node, &block->node_list, list) {
if (ppir_node_is_root(node))
ppir_node_print_node(node, 0);