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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org,
                   |                            |vmakarov at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems this breaks during sched1, which given:
(insn 10031 10029 8 5 (set (mem/v:BLK (scratch:DI) [0  A8])
        (unspec:BLK [
                (mem/v:BLK (scratch:DI) [0  A8])
            ] UNSPEC_LWSYNC)) "pr83084.C":11 683 {*lwsync}
     (nil))
(debug_insn 8 10031 10032 5 (var_location:SI D#2 (unspec_volatile:SI [
            (mem/v:SI (reg/f:DI 131 [ this ]) [-1  S4 A32])
        ] UNSPECV_LL)) -1
     (nil))
(insn 10032 8 10033 5 (set (reg:SI 138)
        (unspec_volatile:SI [
                (mem/v:SI (reg/f:DI 131 [ this ]) [-1  S4 A32])
            ] UNSPECV_LL)) "pr83084.C":11 694 {load_lockedsi}
     (nil))
with the debug_insn of course missing for -g0 reorders them if the debug_insn
is in there to:
(insn 10032 10029 10031 5 (set (reg:SI 138)
        (unspec_volatile:SI [
                (mem/v:SI (reg/f:DI 131 [ this ]) [-1  S4 A32])
            ] UNSPECV_LL)) "pr83084.C":11 694 {load_lockedsi}
     (nil))
(insn 10031 10032 8 5 (set (mem/v:BLK (scratch:DI) [0  A8])
        (unspec:BLK [
                (mem/v:BLK (scratch:DI) [0  A8])
            ] UNSPEC_LWSYNC)) "pr83084.C":11 683 {*lwsync}
     (nil))
(debug_insn 8 10031 10033 5 (var_location:SI D#2 (clobber (const_int 0 [0])))
-1
     (nil))
but without the debug_insn keeps them as is.

Reply via email to