vkd3d-shader/ir: Don't preallocate in vsir_program_materialise_phi_ssas_to_temps().

This commit is contained in:
Francisco Casas
2025-10-08 01:17:28 -03:00
committed by Henri Verbeet
parent 9af4ec2b28
commit 26d1f4c78d
Notes: Henri Verbeet 2025-10-08 13:51:10 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1777

View File

@@ -4807,8 +4807,8 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function(
struct vsir_program_iterator it_begin = *it;
struct ssas_to_temps_alloc alloc = {0};
struct vkd3d_shader_instruction *ins;
size_t phi_count, incoming_count;
unsigned int current_label = 0;
size_t phi_count;
VKD3D_ASSERT(program->cf_type == VSIR_CF_BLOCKS);
@@ -4822,7 +4822,6 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function(
goto fail;
phi_count = 0;
incoming_count = 0;
for (ins = vsir_program_iterator_current(it); ins; ins = vsir_program_iterator_next(it))
{
unsigned int j, temp_idx;
@@ -4871,8 +4870,6 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function(
incoming->dst = ins->dst;
alloc.table[ins->dst->reg.idx[0].offset] = temp_idx;
++incoming_count;
}
materialize_ssas_to_temps_process_reg(program, &alloc, &ins->dst->reg);
@@ -4881,9 +4878,6 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function(
if (!phi_count)
goto done;
if (!shader_instruction_array_reserve(&program->instructions, program->instructions.count + incoming_count))
goto fail;
*it = it_begin;
for (ins = vsir_program_iterator_current(it); ins; ins = vsir_program_iterator_next(it))
@@ -4908,7 +4902,8 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function(
case VSIR_OP_SWITCH_MONOLITHIC:
info = &block_info[current_label - 1];
mov_ins = vsir_program_iterator_insert_before_and_move(it, info->incoming_count);
if (!(mov_ins = vsir_program_iterator_insert_before_and_move(it, info->incoming_count)))
goto fail;
VKD3D_ASSERT(mov_ins);
for (j = 0; j < info->incoming_count; ++j)