summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQiang Yu <yuq825@gmail.com>2017-10-15 18:02:36 +0800
committerQiang Yu <yuq825@gmail.com>2017-10-15 18:02:36 +0800
commit37209a5e778a8978c9672c46b94b7118e596584f (patch)
tree79ae83ecd4691a80a921ba90690479f74d03b7bb
parentbf47763ab8760e48b044fbe01de9c24948f5dced (diff)
lima/gpir: schedule load node early
Signed-off-by: Qiang Yu <yuq825@gmail.com>
-rw-r--r--src/gallium/drivers/lima/ir/gp/scheduler.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/drivers/lima/ir/gp/scheduler.c b/src/gallium/drivers/lima/ir/gp/scheduler.c
index 5ec7e31fe3..338c944535 100644
--- a/src/gallium/drivers/lima/ir/gp/scheduler.c
+++ b/src/gallium/drivers/lima/ir/gp/scheduler.c
@@ -234,9 +234,12 @@ static void gpir_insert_ready_list(struct list_head *ready_list, gpir_node *inse
* other successor. And no other node will be called with this function
* before schedule complex2 & impl, because complex1 only have there
* children, the last one is also the child of the complex2 & impl, it
- * won't be schedulable until complex2 & impl have been scheduled. */
+ * won't be schedulable until complex2 & impl have been scheduled.
+ *
+ * Unsure: also schedule load node early to avoid spill to reg */
if (insert_node->op == gpir_op_complex2 ||
- insert_node->op == gpir_op_rcp_impl) {
+ insert_node->op == gpir_op_rcp_impl ||
+ insert_node->type == gpir_node_type_load) {
list_add(&insert_node->ready, ready_list);
return;
}