https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128437
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|rtl-optimization |target
--- Comment #7 from Drea Pinski <pinskia at gcc dot gnu.org> ---
So there looks like some missed optimizations on the gimple level which is
exposing the issue on the RTL level.
```
entries.2_43 = entries;
_47 = entries.2_43->slot;
if (_47 != 0B)
goto <bb 6>; [89.00%]
else
goto <bb 10>; [11.00%]
<bb 6> [local count: 168621907]:
if (pretmp_78 != 0B)
goto <bb 7>; [100.00%]
else
goto <bb 8>; [0.00%]
<bb 10> [local count: 118442969]:
if (pretmp_78 != 0B)
goto <bb 7>; [100.00%]
else
goto <bb 8>; [0.00%]
```
So what is happening is this part:
(call_insn/u:TI 10 9 23 3 (parallel [
(set (reg:DI 0 ax)
(call:DI (mem:QI (symbol_ref:DI ("__tls_get_addr")) [0 S1 A8])
(const_int 0 [0])))
(unspec:DI [
(reg/f:DI 7 sp)
] UNSPEC_TLS_LD_BASE)
(clobber (reg:DI 5 di))
]) "t5.c":15:7 1788 {*tls_local_dynamic_base_64_di}
(expr_list:REG_UNUSED (reg:DI 0 ax)
(expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000])
(nil)))
(nil) 0)
is not being deleting. I think this is due to this being a call_insn. No
other target uses call here .... So back to a target specific issue.