https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113089

--- Comment #10 from Alex Coplan <acoplan at gcc dot gnu.org> ---
So we have this RTL going into ldp_fusion2:

  103: x16:DI=[x15:DI--]
      REG_INC x15:DI
  104: x16:SI=zero_extend([x16:DI])
  105: x16:SI=x11:SI-x16:SI
  106: x16:SI=x8:SI*x16:SI+x16:SI
 1117: {x26:DI=unspec[[x10:DI-0x30]] 39;x27:DI=unspec[[x10:DI-0x30]] 40;}
 1118: x27:SI=zero_extend([x27:DI])
 1119: x27:SI=x11:SI-x27:SI
 1048: x20:DI=[x10:DI-0x10]
      REG_EQUIV [x10:DI-0x10]
 1049: x20:SI=zero_extend([x20:DI])
 1050: x20:SI=x11:SI-x20:SI
 1367: debug D#22 => x15:DI
 1025: x15:DI=[x15:DI]

and we try to fuse (103,1025):

fusing pair [L=1] (103,1025), base=15, hazards: (104,103), move_range:
(103,103)
  ldp: i103 has wb but subsequent i1025 has non-wb update of base (r15),
dropping wb

but we fail to update the debug insn 1367 which has a use of the def of x15 in
i103 that we're deleting.

Reply via email to