With the attached sample code I get a substantial performance drop from 4.3.1
to either 4.4.1 or 4.5.0, same compiler option, same machine. To reproduce,
feed a size to the program (in the case below, 40000) and time the executable. 

[sfili...@donald fgp_fmm_20091112]$ gfortran -v  
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.3.1/configure --prefix=/usr/local/gcc43
--with-mpfr=/u
sr/local/mpfr --with-gmp=/usr/local/gmp
Thread model: posix
gcc version 4.3.1 (GCC) 
[sfili...@donald fgp_fmm_20091112]$ gfortran -O3 -o try_eval eval.f90
[sfili...@donald fgp_fmm_20091112]$ time ./try_eval <<EOF
40000
EOF

real    0m10.871s
user    0m10.825s
sys     0m0.011s
[sfili...@donald fgp_fmm_20091112]$ module unload gnu43
[sfili...@donald fgp_fmm_20091112]$ module load gnu45 
        gnu45 - loads the GNU 4.5.0-pre compilers suite

        Version 1.0

[sfili...@donald fgp_fmm_20091112]$ gfortran -v 
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/local/gnu45/libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/
lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure --prefix=/usr/local/gnu45
--enable-languages=c
,c++,fortran : (reconfigured) ../gcc/configure --prefix=/usr/local/gnu45
--enabl
e-languages=c,c++,fortran : (reconfigured) ../gcc/configure
--prefix=/usr/local/
gnu45 --enable-languages=c,c++,fortran,lto --no-create --no-recursion :
(reconfi
gured) ../gcc/configure --prefix=/usr/local/gnu45
--enable-languages=c,c++,fortr
an,lto --no-create --no-recursion
Thread model: posix
gcc version 4.5.0 20091119 (experimental) (GCC) 
[sfili...@donald fgp_fmm_20091112]$ gfortran -O3 -o try_eval eval.f90
[sfili...@donald fgp_fmm_20091112]$ time ./try_eval <<EOF
40000
EOF

real    0m23.935s
user    0m23.862s
sys     0m0.011s
[sfili...@donald fgp_fmm_20091112]$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 2
model name      : AMD Athlon(tm) 7750 Dual-Core Processor
stepping        : 3
cpu MHz         : 2700.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm
3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16
lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch
osvw ibs
bogomips        : 5424.74
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate


-- 
           Summary: Performance drop from 4.3 to 4.4/4.5
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sfilippone at uniroma2 dot it
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42108

Reply via email to