https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90567
Bug ID: 90567 Summary: GCC bad optimization on recursive functions Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: msmaldi at hotmail dot com Target Milestone: --- consider code: int fibo (int n) { if (n == 1 || n == 2) return 1; else return fibo(n - 1) + fibo(n - 2); } int main() { printf ("%d\n", fibo (45)); return 0; } with flags: -m64 -flto -march=native -O3 GCC-7 real 0m3,066s user 0m3,065s sys 0m0,000s GCC-8 real 0m4,868s user 0m4,864s sys 0m0,004s GCC-9 real 0m5,015s user 0m5,010s sys 0m0,004s