Why system gcc that is 4.2.1 produces different code than gcc-4.2.1 compiled from sources?

Leonidas Tsampros ltsampros at upnet.gr
Sun Apr 25 18:03:28 UTC 2010


Yuri <yuri at rawbw.com> writes:

> I ran this simple example:
>
> #include <stdlib.h>
> #include <stdio.h>
>
> int fib(int AnArg) {
>  if (AnArg <= 2) return (1);
>  return (fib(AnArg-1)+fib(AnArg-2));
> }
>
> int main(int argc, char* argv[]) {
>  int n = atoi(argv[1]);
>  printf("fib(%i)=%i\n", n, fib(n));
> }
>
> through system gcc and gcc built from sources. Both are 4.2.1. Options: -O3.
>
> Average runtime with the argument 45 is quite different: system gcc is
> 3.650s and gcc-4.2.1 from sources is 3.740.
> CPU: Intel(R) Core(TM) i7 CPU       @ 9200 @ 2.67GHz
>

Hi,

I'm pretty sure that a small difference in execution time does not mean
that the produced code is different. In order to check the code gcc
produced, you need to do something like this:

objdump -d executable

or even use gdb's disassemble command.

Regards,
Leonidas

> Yuri



More information about the freebsd-questions mailing list