https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95781
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org, | |marxin at gcc dot gnu.org Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Keywords| |missed-optimization Component|other |ipa Last reconfirmed| |2020-06-22 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. The recursion is only removed late via tail-recursion but then cgraph processing order is unfortunate in the sense that we don't have a IPA phase pass after optimizations and thus dead functions are only removed reliably outside of (original) cgraph cycles. For multiple reasons we want to be able to separate actual assembly output from assembly production thus eventually a per symtab node assembler fragment and late "IPA" assembling of the assembler file might help here.