if (!u_vector_init(&bi->instructions,
sizeof(nir_alu_instr *),
- 8 * sizeof(nir_alu_instr *)))
+ 8 * sizeof(nir_alu_instr *))) {
+ free(bi);
return NULL;
+ }
exec_list_push_tail(&bq->blocks, &bi->node);
* and neither operand is immediate value 0, add it to the set.
*/
if (is_used_by_if(alu) &&
- is_not_const_zero(alu, 0, 1, swizzle) &&
- is_not_const_zero(alu, 1, 1, swizzle))
+ is_not_const_zero(NULL, alu, 0, 1, swizzle) &&
+ is_not_const_zero(NULL, alu, 1, 1, swizzle))
add_instruction_for_block(bi, alu);
break;
block_queue_finish(&bq);
- if (progress)
+ if (progress) {
nir_metadata_preserve(impl, nir_metadata_block_index |
nir_metadata_dominance);
+ } else {
+ nir_metadata_preserve(impl, nir_metadata_all);
+ }
return progress;
}