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

Reply via email to