diff options
author | tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-08-02 22:04:36 +0000 |
---|---|---|
committer | tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-08-02 22:04:36 +0000 |
commit | 644e9dad11b9ba317bd11726569b5d8bc648950f (patch) | |
tree | f3b3bcc6b23e99dfab67f045cd41aacc8706f297 /gcc | |
parent | d762f8cc9189feaf8b49058f5bb42aa0ec6f2514 (diff) | |
download | gcc-644e9dad11b9ba317bd11726569b5d8bc648950f.tar.gz |
2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/45159
* depencency.c (gfc_dep_resolver): Fix logic for when a loop
can be reversed.
2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/45159
* gfortran.dg/dependency_29.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162829 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/dependency.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dependency_29.f90 | 11 |
4 files changed, 28 insertions, 12 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index db64bff0596..3b5a435e0f0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/45159 + * depencency.c (gfc_dep_resolver): Fix logic for when a loop + can be reversed. + +2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/36854 * dependency.h: Add prototype for gfc_are_identical_variables. * frontend-passes.c: Include depencency.h. diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c index b20b627b3f7..1eae1ebaa81 100644 --- a/gcc/fortran/dependency.c +++ b/gcc/fortran/dependency.c @@ -1716,8 +1716,8 @@ gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse) /* If no intention of reversing or reversing is explicitly inhibited, convert backward dependence to overlap. */ - if ((reverse == NULL && this_dep == GFC_DEP_BACKWARD) - || (reverse && reverse[n] == GFC_CANNOT_REVERSE)) + if (this_dep == GFC_DEP_BACKWARD + && (reverse == NULL || reverse[n] == GFC_CANNOT_REVERSE)) this_dep = GFC_DEP_OVERLAP; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1687f03d369..a869861b430 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,16 +1,15 @@ 2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/45159 + + * gfortran.dg/dependency_29.f90: New test. + +2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org> + PR fortran/36854 - * dependency.h: Add prototype for gfc_are_identical_variables. - * frontend-passes.c: Include depencency.h. - (optimimize_equality): Use gfc_are_identical_variables. - * dependency.c (identical_array_ref): New function. - (gfc_are_identical_variables): New function. - (gfc_deb_compare_expr): Use gfc_are_identical_variables. - * dependency.c (gfc_check_section_vs_section). Rename gfc_ - prefix from statc function. - (check_section_vs_section): Change arguments to gfc_array_ref, - adjust function body accordingly. + * gfortran.dg/character_comparison_2.f90: New test. + * gfortran.dg/character_comparison_3.f90: New test. + * gfortran.dg/dependency_28.f90: New test. 2010-08-02 Bernd Schmidt <bernds@codesourcery.com> diff --git a/gcc/testsuite/gfortran.dg/dependency_29.f90 b/gcc/testsuite/gfortran.dg/dependency_29.f90 new file mode 100644 index 00000000000..398bf2c7b25 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dependency_29.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-options "-Warray-temporaries" } + +subroutine t1(n1,n2, gfft, ufft) + implicit none + integer :: n1, n2, i + real :: gfft(n1,n2), ufft(n2) + DO i=1, n1 + gfft(i,:)=gfft(i,:)*ufft(i) + END DO +end subroutine t1 |