diff options
author | Qiang Yu <yuq825@gmail.com> | 2017-10-22 14:08:47 +0800 |
---|---|---|
committer | Qiang Yu <yuq825@gmail.com> | 2017-10-22 14:08:47 +0800 |
commit | 1a2cbcbec6396b040be769f3372c20eebb640590 (patch) | |
tree | 5cf9d931a82726928a19105c60b0b18ba6b57d05 | |
parent | 6cf4cdcb9bd5ba7cae703fc802135ae7bf3cef75 (diff) |
lima/gpir: drop the schedule reuse move code
not very useful but introduce complexity for revert
new created move node.
Signed-off-by: Qiang Yu <yuq825@gmail.com>
-rw-r--r-- | src/gallium/drivers/lima/ir/gp/scheduler.c | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/src/gallium/drivers/lima/ir/gp/scheduler.c b/src/gallium/drivers/lima/ir/gp/scheduler.c index dddc7dc78b..9e56f94b86 100644 --- a/src/gallium/drivers/lima/ir/gp/scheduler.c +++ b/src/gallium/drivers/lima/ir/gp/scheduler.c @@ -613,64 +613,6 @@ static bool gpir_insert_move_for_store_load(gpir_block *block, gpir_node *node) return true; } -static gpir_node *gpir_move_get_start_node(gpir_node *node) -{ - gpir_node *move = NULL; - - /* find existing move node to reuse */ - gpir_node_foreach_succ(node, entry) { - gpir_dep_info *dep = gpir_dep_from_entry(entry); - gpir_node *succ = gpir_node_from_entry(entry, succ); - int max = succ->sched_instr + gpir_get_max_dist(dep); - - /* node may have multi move successors, but can only satisfy one at a time */ - if (max >= node->sched_instr && succ->op == gpir_op_mov) { - /* move node may have only one move successor, find the deepest */ - move = succ; - while (true) { - gpir_node *new_move = NULL; - - gpir_node_foreach_succ(move, _entry) { - gpir_node *_succ = gpir_node_from_entry(_entry, succ); - if (_succ->op == gpir_op_mov) { - new_move = _succ; - break; - } - } - - if (new_move) - move = new_move; - else - break; - } - } - } - - if (!move) - return node; - - /* move un-satisfied successors of node to move node */ - gpir_node_foreach_succ(node, entry) { - gpir_dep_info *dep = gpir_dep_from_entry(entry); - gpir_node *succ = gpir_node_from_entry(entry, succ); - int max = succ->sched_instr + gpir_get_max_dist(dep); - - if (max < node->sched_instr) { - assert(max < move->sched_instr); - - dep->pred = move; - _mesa_set_add_pre_hashed(move->succs, entry->hash, dep); - _mesa_set_remove(node->succs, entry); - gpir_node_replace_child(succ, node, move); - } - } - - debug_printf("gpir: scheduler reuse move node %d for node %d\n", - move->index, node->index); - - return move; -} - /* * Return: * >=0 - success, the last inserted load instr index @@ -707,8 +649,7 @@ static int gpir_try_insert_load(gpir_block *block, gpir_node *node, int end) break; } - gpir_node *start_node = gpir_move_get_start_node(current); - gpir_node *move = gpir_create_from_node(block, start_node, NULL); + gpir_node *move = gpir_create_from_node(block, current, NULL); if (!move) return -2; |