https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99862
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Zhendong Su from comment #0) > [561] % gcctk -v > Using built-in specs. > COLLECT_GCC=gcctk > COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/ > x86_64-pc-linux-gnu/11.0.1/lto-wrapper > Target: x86_64-pc-linux-gnu > Configured with: ../gcc-trunk/configure --disable-bootstrap > --prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++ > --disable-werror --enable-multilib --with-system-zlib > Thread model: posix > Supported LTO compression algorithms: zlib > gcc version 11.0.1 20210401 (experimental) [master revision > e4bb1bd60a9:c23a685bf70:95d217ab52d31dc06fda42fc136dea165909e88b] (GCC) > [562] % > [562] % gcctk -O1 -S -o O1.s small.c > [563] % gcctk -O3 -S -o O3.s small.c > [564] % > [564] % wc O1.s O3.s > 23 45 420 O1.s > 39 74 669 O3.s > 62 119 1089 total > [565] % > [565] % grep foo O1.s > [566] % grep foo O3.s > call foo > [567] % > [567] % cat small.c > extern void foo(void); > static int a, b; > static int c() { > foo(); > while (1) > while (b) > foo(); > } > void d() { > if (a) > c(); > } > int main() { > d(); > return 0; > } I filed this as PR99991.