From: Jason Ekstrand Date: Wed, 8 May 2019 17:41:31 +0000 (-0500) Subject: intel/fs/ra: Stop adding RA interference to too many SENDS nodes X-Git-Tag: upstream/19.3.0~6323 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=096ad8a8099cbcb3c868c08814fbe14ac79ca680;p=platform%2Fupstream%2Fmesa.git intel/fs/ra: Stop adding RA interference to too many SENDS nodes We only have one node per VGRF so this was adding way too much interference. No idea how we didn't catch this before. Shader-db results on Kaby Lake: total instructions in shared programs: 15311100 -> 15311100 (0.00%) instructions in affected programs: 0 -> 0 helped: 0 HURT: 0 total cycles in shared programs: 355468050 -> 355543197 (0.02%) cycles in affected programs: 2472492 -> 2547639 (3.04%) helped: 17 HURT: 20 Fixes: 014edff0d20d "intel/fs: Add interference between SENDS sources" Reviewed-by: Kenneth Graunke --- diff --git a/src/intel/compiler/brw_fs_reg_allocate.cpp b/src/intel/compiler/brw_fs_reg_allocate.cpp index f892117..35903c4 100644 --- a/src/intel/compiler/brw_fs_reg_allocate.cpp +++ b/src/intel/compiler/brw_fs_reg_allocate.cpp @@ -710,14 +710,9 @@ fs_visitor::assign_regs(bool allow_spilling, bool spill_all) if (inst->opcode == SHADER_OPCODE_SEND && inst->ex_mlen > 0 && inst->src[2].file == VGRF && inst->src[3].file == VGRF && - inst->src[2].nr != inst->src[3].nr) { - for (unsigned i = 0; i < inst->mlen; i++) { - for (unsigned j = 0; j < inst->ex_mlen; j++) { - ra_add_node_interference(g, inst->src[2].nr + i, - inst->src[3].nr + j); - } - } - } + inst->src[2].nr != inst->src[3].nr) + ra_add_node_interference(g, inst->src[2].nr, + inst->src[3].nr); } }