https://gcc.gnu.org/g:0312d11be3f666a6b71461dc8a09e7aac64853eb
commit r15-7634-g0312d11be3f666a6b71461dc8a09e7aac64853eb Author: H.J. Lu <hjl.to...@gmail.com> Date: Thu Feb 20 15:23:05 2025 +0800 Revert "i386: Simplify PARALLEL RTX scan in ix86_find_all_reg_use" This reverts commit 565d4e755498ad2b5ed55e368ef61eb9511cda3a. Diff: --- gcc/config/i386/i386.cc | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index 560e6525b56b..fafd4a511a3c 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -8538,9 +8538,31 @@ ix86_find_all_reg_use (HARD_REG_SET &stack_slot_access, for (int i = 0; i < XVECLEN (pat, 0); i++) { rtx exp = XVECEXP (pat, 0, i); - - if (GET_CODE (exp) == SET) - ix86_find_all_reg_use_1 (exp, stack_slot_access, worklist); + switch (GET_CODE (exp)) + { + case ASM_OPERANDS: + case CLOBBER: + case PREFETCH: + case USE: + break; + case UNSPEC: + case UNSPEC_VOLATILE: + for (int j = XVECLEN (exp, 0) - 1; j >= 0; j--) + { + rtx x = XVECEXP (exp, 0, j); + if (GET_CODE (x) == SET) + ix86_find_all_reg_use_1 (x, stack_slot_access, + worklist); + } + break; + case SET: + ix86_find_all_reg_use_1 (exp, stack_slot_access, + worklist); + break; + default: + gcc_unreachable (); + break; + } } } }