diff options
author | Vasily Khoruzhick <anarsoul@gmail.com> | 2019-08-18 23:37:23 -0700 |
---|---|---|
committer | Vasily Khoruzhick <anarsoul@gmail.com> | 2019-08-24 08:17:31 -0700 |
commit | 28d4b456a582c1388fc3dde45e98cc97389485dc (patch) | |
tree | 2095737304fb69d3387ab0e3bf718565c16cbfc0 /src/gallium/drivers/lima/ir/pp/node.c | |
parent | 1cdf585613da37f23d737ac4713af0484d4a30d7 (diff) | |
download | mesa-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.c | 17 |
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); |