dependency.c (gfc_check_element_vs_element): Consider two unordered scalar subscripts as (potentially) equal.
* dependency.c (gfc_check_element_vs_element): Consider two unordered scalar subscripts as (potentially) equal. * gfortran.dg/dependency_9.f90: New test case. From-SVN: r111687
This commit is contained in:
parent
0b8f2ce42d
commit
12de6bc686
@ -1,3 +1,8 @@
|
||||
2006-03-03 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* dependency.c (gfc_check_element_vs_element): Consider two
|
||||
unordered scalar subscripts as (potentially) equal.
|
||||
|
||||
2006-03-03 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* dependency.c (gfc_check_dependency): Call gfc_dep_resolver to
|
||||
|
@ -739,8 +739,14 @@ gfc_check_element_vs_element (gfc_ref * lref, gfc_ref * rref, int n)
|
||||
i = gfc_dep_compare_expr (r_start, l_start);
|
||||
if (i == 0)
|
||||
return GFC_DEP_EQUAL;
|
||||
/* Treat two scalar variables as potentially equal. This allows
|
||||
us to prove that a(i,:) and a(j,:) have no dependency. See
|
||||
Gerald Roth, "Evaluation of Array Syntax Dependence Analysis",
|
||||
Proceedings of the International Conference on Parallel and
|
||||
Distributed Processing Techniques and Applications (PDPTA2001),
|
||||
Las Vegas, Nevada, June 2001. This used to be GFC_DEP_OVERLAP. */
|
||||
if (i == -2)
|
||||
return GFC_DEP_OVERLAP;
|
||||
return GFC_DEP_EQUAL;
|
||||
return GFC_DEP_NODEP;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2006-03-03 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* gfortran.dg/dependency_9.f90: New test case.
|
||||
|
||||
2006-03-03 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* gfortran.dg/dependency_4.f90: New test case.
|
||||
|
13
gcc/testsuite/gfortran.dg/dependency_9.f90
Normal file
13
gcc/testsuite/gfortran.dg/dependency_9.f90
Normal file
@ -0,0 +1,13 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-O2 -fdump-tree-original" }
|
||||
subroutine foo(a,i,j)
|
||||
integer, dimension (4,4) :: a
|
||||
integer :: i
|
||||
integer :: j
|
||||
|
||||
where (a(i,:) .ne. 0)
|
||||
a(j,:) = 1
|
||||
endwhere
|
||||
end subroutine
|
||||
! { dg-final { scan-tree-dump-times "malloc" 0 "original" } }
|
||||
! { dg-final { cleanup-tree-dump "original" } }
|
Loading…
Reference in New Issue
Block a user