static bool constant_fold_block(nir_block *block, void *void_state) { struct constant_fold_state *state = void_state; nir_foreach_instr_safe(block, instr) { switch (instr->type) { case nir_instr_type_alu: state->progress |= constant_fold_alu_instr(nir_instr_as_alu(instr), state->mem_ctx); break; case nir_instr_type_intrinsic: state->progress |= constant_fold_intrinsic_instr(nir_instr_as_intrinsic(instr)); break; case nir_instr_type_tex: state->progress |= constant_fold_tex_instr(nir_instr_as_tex(instr)); break; default: /* Don't know how to constant fold */ break; } } return true; }
static bool constant_fold_block(nir_block *block, void *mem_ctx) { bool progress = false; nir_foreach_instr_safe(instr, block) { switch (instr->type) { case nir_instr_type_alu: progress |= constant_fold_alu_instr(nir_instr_as_alu(instr), mem_ctx); break; case nir_instr_type_intrinsic: progress |= constant_fold_intrinsic_instr(nir_instr_as_intrinsic(instr)); break; default: /* Don't know how to constant fold */ break; } } return progress; }