https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109509
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Possible issues specific to GCC that LLVM maybe avoids are: Another probably more common with C++ code issue would be that we inline into not optimized callers which means calls that are almost trivially unreachable have not been eliminated yet but get inlined. Usual heuristics would only inline small functions at this level and defer inlining of larger functions to IPA time at which point the calls might be eliminated already. Likewise calls attributed const or pure might be subject to CSE but always-inline forces them to be inlined before CSE.