From 358d741b229ee6afd137ff9c01b6aad9782e1f81 Mon Sep 17 00:00:00 2001 From: Simon Perretta Date: Thu, 23 Jan 2025 18:54:11 +0000 Subject: [PATCH] pco: skip over empty blocks when iterating instructions Signed-off-by: Simon Perretta Acked-by: Erik Faye-Lund Part-of: --- src/imagination/pco/pco_internal.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/imagination/pco/pco_internal.h b/src/imagination/pco/pco_internal.h index 21497d5dc30..8d86f1cb0b3 100644 --- a/src/imagination/pco/pco_internal.h +++ b/src/imagination/pco/pco_internal.h @@ -1269,6 +1269,11 @@ static inline pco_instr *pco_next_instr(pco_instr *instr) return next_instr; pco_block *block = pco_next_block(instr->parent_block); + + /* Skip over empty blocks. */ + while (block && exec_list_is_empty(&block->instrs)) + block = pco_next_block(block); + return !block ? NULL : pco_first_instr(block); } @@ -1289,6 +1294,11 @@ static inline pco_instr *pco_prev_instr(pco_instr *instr) return prev_instr; pco_block *block = pco_prev_block(instr->parent_block); + + /* Skip over empty blocks. */ + while (block && exec_list_is_empty(&block->instrs)) + block = pco_prev_block(block); + return !block ? NULL : pco_last_instr(block); }