aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2019-09-02 09:48:54 +0200
committerConnor Abbott <[email protected]>2019-09-09 17:40:58 +0700
commit63acdb5ce68b77443bed06729d109145ca8dfa77 (patch)
tree126482df0ea40e511faf637c44346efe546ef17d /src
parentee8cc90e553b56e8fbab5ecbaa5b1476221401d1 (diff)
lima/gpir: Ignore unscheduled successors in can_use_complex()
The point of the function is to avoid creating a complex move which is used by certain slots in the next instruction, but unscheduled successors will never be in the next instruction. Found while debugging a crash that the previous commit fixed. Reviewed-by: Vasily Khoruzhick <[email protected]> Tested-by: Vasily Khoruzhick <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/lima/ir/gp/scheduler.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/lima/ir/gp/scheduler.c b/src/gallium/drivers/lima/ir/gp/scheduler.c
index 9900ceaa041..bfb64543e06 100644
--- a/src/gallium/drivers/lima/ir/gp/scheduler.c
+++ b/src/gallium/drivers/lima/ir/gp/scheduler.c
@@ -1154,7 +1154,8 @@ static bool can_use_complex(gpir_node *node)
continue;
gpir_node *succ = dep->succ;
- if (succ->type != gpir_node_type_alu)
+ if (succ->type != gpir_node_type_alu ||
+ !succ->sched.instr)
continue;
/* Note: this must be consistent with gpir_codegen_{mul,add}_slot{0,1}