From 8f1052938d5a45f007d0d8f109958acea1f01c33 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 28 Jun 2021 19:06:44 -0700 Subject: [PATCH] intel/compiler: Update block IPs once in register_coalesce MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Performance improvement in dEQP-VK.ssbo.phys.layout.random.16bit.scalar.13 for n=30: release build (w/Fedora build flags): -0.82% ± 0.23% Meson -Dbuildtype=debugoptimized: -0.74% ± 0.27% The difference in the debugoptimized build is the calls to inst_is_in_block(block, this) still exist on each call to remove(). v2: Only update each block's IP data once instead of once per block. Suggested by Emma. Reviewed-by: Emma Anholt Part-of: --- src/intel/compiler/brw_fs_register_coalesce.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/intel/compiler/brw_fs_register_coalesce.cpp b/src/intel/compiler/brw_fs_register_coalesce.cpp index 671ced5bc95..51e9af4a72f 100644 --- a/src/intel/compiler/brw_fs_register_coalesce.cpp +++ b/src/intel/compiler/brw_fs_register_coalesce.cpp @@ -330,10 +330,12 @@ fs_visitor::register_coalesce() if (progress) { foreach_block_and_inst_safe (block, backend_instruction, inst, cfg) { if (inst->opcode == BRW_OPCODE_NOP) { - inst->remove(block); + inst->remove(block, true); } } + cfg->adjust_block_ips(); + invalidate_analysis(DEPENDENCY_INSTRUCTIONS); }