From 4b27b5895c9ef8a597c061e3b5fdf15e1424cc22 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 9 Apr 2025 16:03:47 -0700 Subject: [PATCH] brw: Use live->max_vgrf_size in register coalescing We already require liveness, so just use the actual maximum size we saw instead of a hardcoded pessimal size. Cc: mesa-stable Reviewed-by: Matt Turner Part-of: --- src/intel/compiler/brw_opt_register_coalesce.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/intel/compiler/brw_opt_register_coalesce.cpp b/src/intel/compiler/brw_opt_register_coalesce.cpp index 1515d0b635d..23465df0c50 100644 --- a/src/intel/compiler/brw_opt_register_coalesce.cpp +++ b/src/intel/compiler/brw_opt_register_coalesce.cpp @@ -234,10 +234,10 @@ brw_opt_register_coalesce(brw_shader &s) int src_size = 0; int channels_remaining = 0; unsigned src_reg = ~0u, dst_reg = ~0u; - int *dst_reg_offset = new int[MAX_VGRF_SIZE(devinfo)]; - brw_inst **mov = new brw_inst *[MAX_VGRF_SIZE(devinfo)]; - int *dst_var = new int[MAX_VGRF_SIZE(devinfo)]; - int *src_var = new int[MAX_VGRF_SIZE(devinfo)]; + int *dst_reg_offset = new int[live.max_vgrf_size]; + brw_inst **mov = new brw_inst *[live.max_vgrf_size]; + int *dst_var = new int[live.max_vgrf_size]; + int *src_var = new int[live.max_vgrf_size]; const brw_def_analysis &defs = s.def_analysis.require(); foreach_block_and_inst(block, brw_inst, inst, s.cfg) { @@ -268,10 +268,10 @@ brw_opt_register_coalesce(brw_shader &s) src_reg = inst->src[0].nr; src_size = s.alloc.sizes[inst->src[0].nr]; - assert(src_size <= MAX_VGRF_SIZE(devinfo)); + assert(src_size <= (int) live.max_vgrf_size); channels_remaining = src_size; - memset(mov, 0, sizeof(*mov) * MAX_VGRF_SIZE(devinfo)); + memset(mov, 0, sizeof(*mov) * live.max_vgrf_size); dst_reg = inst->dst.nr; }