https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94818
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2020-04-28 CC| |marxin at gcc dot gnu.org Component|tree-optimization |ipa Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. ___builtin_constant_p is only resolved after IPA optimization and at that point unreachable functions can no longer be removed reliably (foo is output before bar0 __builtin_constant_p is resolved). We could add another "IPA" sync point before RTL expansion but not sure if we really want to. We could also see there's no callers to bar0 and bar1 and resolve __builtin_constant_p earlier during IPA.