This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix DCE REG_LIBCALL note moving from noop move insns (PR rtl-optimization/33644)
> gcc actually marks them as CONST_OR_PURE_CALL_P (which is a little bit of
> lie, as glibc needs to write some memory as part of resolving __tls_get_addr
> for the first time, but a) nothing actually cares if it is not called at all
> b) nothing cares if it is called just once or several times).
> CSE does its job, replaces the pseudo set by second REG_RETVAL insn
> by the pseudo set by first REG_RETVAL, but as dce.c doesn't handle libcalls
> properly, nothing ever purges the dead libcall.
I'm travelling now, so can't easily test this myself, but what happens if
it's NOT a libcall and if there's still two calls, why?