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 <anarsoul@gmail.com>
Tested-by: Vasily Khoruzhick <anarsoul@gmail.com>
This commit is contained in:
Connor Abbott 2019-09-02 09:48:54 +02:00
parent ee8cc90e55
commit 63acdb5ce6

View file

@ -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}