A binary search has led to the cause of a serious regression on
mainline with gfortran at *all optimization levels (ie., -O0, -O1
and -O2)*. The problematic commit is
2005-02-13 Jason Merrill <[EMAIL PROTECTED]>
PR mudflap/19319
* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
slot explicit.
PR c++/16405
* fold-const.c (fold_indirect_ref_1): Split out from...
(build_fold_indirect_ref): Here.
(fold_indirect_ref): New fn.
* tree.h: Declare it.
* gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
(gimplify_modify_expr_rhs): Likewise.
(gimplify_expr): Likewise.
troutmask:sgk[271] cvs update -D '2005-02-12 22:45' |& tee sgk.log
troutmask:sgk[274] grep -v "cvs update" sgk.log
C .cvsignore
P gcc/ChangeLog
P gcc/fold-const.c
P gcc/gimplify.c
P gcc/tree.h
M gcc/fortran/check.c
M gcc/fortran/intrinsic.c
M gcc/fortran/intrinsic.h
M gcc/fortran/resolve.c
M gcc/fortran/simplify.c
P gcc/testsuite/ChangeLog
U gcc/testsuite/gcc.dg/pr15784-1.c
U gcc/testsuite/gcc.dg/pr15784-2.c
U gcc/testsuite/gcc.dg/pr15784-3.c
M libgfortran/intrinsics/date_and_time.c
where the 6 gfortran changes do not cause the problem. If I
use -D '2005-02-12 22:30', which eliminates the above cited
commit, I get a working gfortran. Additionally, a 'gmake
check-gfortran' with or without this commit shows no new
regressions.
The regression is apparent with the test programs that come
with the implementation of BLAS that accompanies LAPACK from
ftp.netlib.org. If I use the -D '2005-02-12 22:30' sources,
gfortran produces no failures with the BLAS test programs.
If I use the -D '2005-02-12 22:45' sources, which includes the
above cited commit, I get the following:
troutmask:sgk[280] grep -i fail testing/*out
testing/xblat2c.out: ******* CTRMV FAILED ON CALL NUMBER:
testing/xblat2c.out: ******* CTBMV FAILED ON CALL NUMBER:
testing/xblat2c.out: ******* CTPMV FAILED ON CALL NUMBER:
testing/xblat2c.out: ******* CTRSV FAILED ON CALL NUMBER:
testing/xblat2c.out: ******* CTBSV FAILED ON CALL NUMBER:
testing/xblat2c.out: ******* CTPSV FAILED ON CALL NUMBER:
testing/xblat2d.out: ******* DTRMV FAILED ON CALL NUMBER:
testing/xblat2d.out: ******* DTBMV FAILED ON CALL NUMBER:
testing/xblat2d.out: ******* DTPMV FAILED ON CALL NUMBER:
testing/xblat2d.out: ******* DTRSV FAILED ON CALL NUMBER:
testing/xblat2d.out: ******* DTBSV FAILED ON CALL NUMBER:
testing/xblat2d.out: ******* DTPSV FAILED ON CALL NUMBER:
testing/xblat2s.out: ******* STRMV FAILED ON CALL NUMBER:
testing/xblat2s.out: ******* STBMV FAILED ON CALL NUMBER:
testing/xblat2s.out: ******* STPMV FAILED ON CALL NUMBER:
testing/xblat2s.out: ******* STRSV FAILED ON CALL NUMBER:
testing/xblat2s.out: ******* STBSV FAILED ON CALL NUMBER:
testing/xblat2s.out: ******* STPSV FAILED ON CALL NUMBER:
testing/xblat2z.out: ******* ZHEMV FAILED ON CALL NUMBER:
testing/xblat2z.out: ******* ZHBMV FAILED ON CALL NUMBER:
testing/xblat2z.out: ******* ZHER FAILED ON CALL NUMBER:
testing/xblat2z.out: ******* ZHPR FAILED ON CALL NUMBER:
testing/xblat3c.out: ******* CGEMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CGEMM FAILED ON CALL NUMBER:
testing/xblat3c.out: ******* CHEMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CHEMM FAILED ON CALL NUMBER:
testing/xblat3c.out: ******* CSYMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CSYMM FAILED ON CALL NUMBER:
testing/xblat3c.out: ******* CTRMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CTRMM FAILED ON CALL NUMBER:
testing/xblat3c.out: ******* CTRSM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CTRSM FAILED ON CALL NUMBER:
testing/xblat3c.out: ******* CHERK FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CSYRK FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CHER2K FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3c.out: ******* CSYR2K FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3d.out: ******* DGEMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3d.out: ******* DGEMM FAILED ON CALL NUMBER:
testing/xblat3d.out: ******* DTRMM FAILED ON CALL NUMBER:
testing/xblat3d.out: ******* DTRSM FAILED ON CALL NUMBER:
testing/xblat3d.out: ******* DSYRK FAILED ON CALL NUMBER:
testing/xblat3s.out: ******* SGEMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3s.out: ******* STRMM FAILED ON CALL NUMBER:
testing/xblat3s.out: ******* STRSM FAILED ON CALL NUMBER:
testing/xblat3s.out: ******* SSYR2K FAILED ON CALL NUMBER:
testing/xblat3z.out: ******* ZGEMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZGEMM FAILED ON CALL NUMBER:
testing/xblat3z.out: ******* ZHEMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZSYMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZTRMM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZTRSM FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZHERK FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZHERK FAILED ON CALL NUMBER:
testing/xblat3z.out: ******* ZSYRK FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZSYRK FAILED ON CALL NUMBER:
testing/xblat3z.out: ******* ZHER2K FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZHER2K FAILED ON CALL NUMBER:
testing/xblat3z.out: ******* ZSYR2K FAILED THE TESTS OF ERROR-EXITS *******
testing/xblat3z.out: ******* ZSYR2K FAILED ON CALL NUMBER:
That is, all level 2 and level 3 BLAS routines exhibit some failures.
This is a major regression. Please consider reverting the commit.
If reverting is out of the question then please fix the commit, so
gfortran once again functions.
troutmask:sgk[276] gfc -v
Using built-in specs.
Target: amd64-unknown-freebsd6.0
Configured with: /usr/tmp/sgk/gcc/configure --enable-languages=c,f95 \
--prefix=/usr/tmp/sgk --program-suffix=4 --disable-libmudflap
Thread model: posix
gcc version 4.0.0 20050213 (experimental)
--
Steve