------- Comment #5 from kargl at gcc dot gnu dot org 2009-07-16 19:55 ------- (In reply to comment #4) > Compiles OK at -O2, but more slowly than with 4.1.2: > > 4.1.2 4.4.0 > -O2: > real 1m19.827s real 2m58.945s > -O3: > real 1m30.645s real 10m5.166s > > Even if -O3 ultimately generates correct code in some suitably large > configuration, > it may be that some optimizer > algorithms could stand tuning to avoid time-consuming > but ultimately unprofitable blind alleys. >
Hmmm, something is definitely admiss here. After 22 minutes of compiling with -O3 on my system, f951 'appears' stuck with only 450 MB of used memory. I attached ktrace to the process and found 50649 f951 CALL mmap(0,0x300000,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0) 50649 f951 RET mmap 500170752/0x21dd00000 50649 f951 CALL madvise(0x22b179000,0x83000,MADV_FREE) 50649 f951 RET madvise 0 50649 f951 CALL madvise(0x22b002000,0x79000,MADV_FREE) 50649 f951 RET madvise 0 50649 f951 CALL madvise(0x21e0f8000,0x8000,MADV_FREE) 50649 f951 RET madvise 0 50649 f951 CALL madvise(0x21e002000,0xde000,MADV_FREE) 50649 f951 RET madvise 0 50649 f951 CALL munmap(0x21dd00000,0x300000) 50649 f951 RET munmap 0 repeated over and over and over again. It appears on my system the f951 is looping over some garbage collection, but never reaching a termination point. :( -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40773