https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118936
--- Comment #9 from Uroš Bizjak <ubizjak at gmail dot com> --- Also wrong is this part: +static void +ix86_find_all_reg_use_1 (rtx set, HARD_REG_SET &stack_slot_access, + auto_bitmap &worklist) +{ + rtx dest = SET_DEST (set); + if (!REG_P (dest)) + return; + + rtx src = SET_SRC (set); + if (MEM_P (src) || CONST_SCALAR_INT_P (src)) + return; + + if (TEST_HARD_REG_BIT (stack_slot_access, REGNO (dest))) + return; + + /* Add this register to stack_slot_access. */ + add_to_hard_reg_set (&stack_slot_access, Pmode, REGNO (dest)); + bitmap_set_bit (worklist, REGNO (dest)); +} The above will be triggered for e.g. cx:DI = ZERO_EXTEND([bp:DI+0x20]). We want to ignore all memory access in the RTX.