GPU statement dependencies missing full synchronization
Dependencies between statements are only considered on the field in the lhs of a statement. This means anything in the rhs of a statement may not have finished being assigned into before a statement that uses it is executed.
Field F1;
Field F2;
Field F3;
/* Has the chance to assign F1 into F3 before F2 has finished assigning into F1 */
/* F3 may not be equal to 5. */
F1 <<= 5;
F2 <<= F1;
F3 <<= F2;