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

--- Comment #7 from Jeevitha <jeevitha at gcc dot gnu.org> ---
The following insns are dead at sched2, but not removed until pass_final, If
these instruction are removed there will be no ICE.

(insn 80 110 111 3 (set (reg:DI 28 28 [145])
        (high:DI (unspec:DI [
                    (reg:DI 2 2)
                ] UNSPEC_TLSLD))) "test.cc":27:7 737 {*tls_ld_high64}
     (expr_list:REG_EQUIV (high:DI (unspec:DI [
                    (reg:DI 2 2)
                ] UNSPEC_TLSLD))
        (nil)))
(insn:TI 81 106 54 3 (set (reg:DI 28 28 [139])
        (lo_sum:DI (reg:DI 28 28 [145])
            (unspec:DI [
                    (reg:DI 2 2)
                ] UNSPEC_TLSLD))) "test.cc":27:7 738 {*tls_ld_low64}
     (expr_list:REG_DEAD (reg:DI 2 2)
        (nil)))

(insn 72 23 53 4 (set (reg:DI 3 3)
        (reg:DI 28 28 [139])) "test.cc":27:7 683 {*movdi_internal64}
     (nil))

call_insn/u 26 53 35 4 (parallel [
            (set (reg:DI 3 3)
                (call (mem:SI (symbol_ref:DI ("__tls_get_addr") [flags 0x41] 
<function_decl 0x7ffff576df00 __tls_get_addr>) [0  S4 A8])
                    (unspec:DI [
                            (reg:DI 2 2)
                        ] UNSPEC_TLSLD)))
            (use (const_int 0 [0]))
            (clobber (reg:DI 96 lr))
        ]) "test.cc":27:7 776 {*call_value_nonlocal_aixdi}
     (expr_list:REG_UNUSED (reg:DI 3 3)
        (expr_list:REG_CALL_DECL (symbol_ref:DI ("__tls_get_addr") [flags 0x41]
 <function_decl 0x7ffff576df00 __tls_get_addr>)
            (expr_list:REG_EH_REGION (const_int -2147483648
[0xffffffff80000000])
                (nil))))
    (expr_list (use (reg:DI 2 2))
        (expr_list (use (reg:DI 3 3))
            (nil))))

Reply via email to