[Bug fortran/68768] [fortran] propagate foo restrict to foo._omp_fn.0

2016-01-21 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68768

vries at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #3 from vries at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #2)
> Here again I don't understand your reference to -fno-cray-pointers (see
> pr68769 comment 1).

Right, as in pr68769, the reference comes from my lack of knowledge of fortran.
So please disregard this.

As I understand now, we can introduce aliases using equivalence and
pointer/target.

I didn't manage to make an example using equivalence (running into: Error:
EQUIVALENCE attribute conflicts with DUMMY attribute).

But here's an example using pointer/target:
...
subroutine subr6 (a)

  implicit none
  integer, parameter :: N = 1024
  integer :: i
  integer, target :: a(N)
  integer, pointer :: b(:)
  b => a
  i = 0

!$omp parallel do
  do i = 1, N
 a(i) = b(i) + b(i)
  end do

end subroutine

program main
  implicit none
  interface
 subroutine subr6 (a)

   implicit none
   integer, target :: a(1024)
 end subroutine subr6
  end interface
  integer, parameter :: n = 1024
  integer, dimension (0:n-1) :: a
  integer:: i

  do i = 0, n - 1
 a(i) = i * 2
  end do

  call subr6(a)

  do i = 0, n - 1
 if (a(i) .ne. i * 4) call abort
  end do

end program main
...

Interestingly, that means that a is no longer a restrict pointer:
...
subr6 (integer(kind=4)[1024] * a)
...

So AFAIU, it is indeed safe (in the description field example) to redeclare a
and b with restrict in the thread function. It is somewhat fragile though,
since it assumes a certain type of code generation in the fortran front-end.

Marking it as resolved-wontfix.

[Bug fortran/68768] [fortran] propagate foo restrict to foo._omp_fn.0

2015-12-13 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68768

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-12-13
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
Here again I don't understand your reference to -fno-cray-pointers (see pr68769
comment 1).

[Bug fortran/68768] [fortran] propagate foo restrict to foo._omp_fn.0

2015-12-08 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68768

--- Comment #1 from vries at gcc dot gnu.org ---
PR68640 has been fixed by committing the simple fix, so the status of this PR
has changed from hypothetical to actual.