nir/spirv: A couple simple loop fixes

This commit is contained in:
Jason Ekstrand 2015-12-28 21:26:13 -08:00
parent 303d095f58
commit cf555dc1c2
2 changed files with 4 additions and 2 deletions

View file

@ -3673,8 +3673,10 @@ vtn_emit_cf_list(struct vtn_builder *b, struct list_head *cf_list)
nir_store_var(&b->nb, do_cont, nir_imm_int(&b->nb, NIR_TRUE), 1);
}
b->nb.cursor = nir_after_cf_node(&loop->cf_node);
b->nb.cursor = nir_after_cf_list(&loop->body);
vtn_emit_cf_list(b, &vtn_loop->body);
b->nb.cursor = nir_after_cf_node(&loop->cf_node);
break;
}

View file

@ -181,7 +181,7 @@ vtn_cfg_walk_blocks(struct vtn_builder *b, struct list_head *cf_list,
*/
vtn_cfg_walk_blocks(b, &loop->body, block,
loop_break, loop_cont, NULL );
vtn_cfg_walk_blocks(b, &loop->body, loop_cont, NULL, NULL, block);
vtn_cfg_walk_blocks(b, &loop->cont_body, loop_cont, NULL, NULL, block);
block = loop_break;
continue;