/* On my laptop without fastcall: $ time ./fib 40 165580141 real 0m0.913s That’s 181 million leaf calls per second. */ __attribute__((fastcall)) int fib(int n) { return n < 2 ? 1 : fib(n-1) + fib(n-2); } main(int c, char **v) { printf("%d\n", fib(atoi(v[1]))); }