[flang-commits] [flang] [flang][openacc] Ignore bare acc routine in module subprogram part instead of erroring out (PR #205450)

Ron Green [NVIDIA] via flang-commits flang-commits at lists.llvm.org
Wed Jun 24 11:47:09 PDT 2026


ronGreenNV wrote:

Valentin, what happens if there are more than 1 module procedures?  In NV the ROUTINE directive seems to create acc routines for all CONTAINed procedures:

`$ nvfortran -acc=gpu -Minfo=accel -g -fast test2.f90
acc_routine1:
      4, Generating implicit acc routine seq
         Generating implicit acc routine seq
         Generating NVIDIA GPU code
acc_routine2:
      8, Generating implicit acc routine seq
         Generating implicit acc routine seq
         Generating NVIDIA GPU code
testem:
     19, Generating copyout(arg) [if not already present]
         Generating NVIDIA GPU code
         20, !$acc loop gang ! blockidx%x
rogreen at sky6:~/quad/llvm205450$ 
rogreen at sky6:~/quad/llvm205450$ 
rogreen at sky6:~/quad/llvm205450$ cat test2.f90
module acc_routine_bad
contains
!$acc routine
subroutine acc_routine1(arg)
  integer, intent(inout) :: arg
  arg = 1
end subroutine
subroutine acc_routine2(arg)
  integer, intent(inout) :: arg
 arg = 2
end subroutine
end module

program testem
use acc_routine_bad
implicit none
integer :: i,arg

!$acc parallel loop copyout(arg)
do i=1,2
  call acc_routine1(arg)
  call acc_routine2(arg)
end do

print*, "arg ", arg
end program testem
rogreen at sky6:~/quad/llvm205450$ nvfortran -acc=gpu -Minfo=accel -g -fast test2.f90
acc_routine1:
      4, Generating implicit acc routine seq
         Generating implicit acc routine seq
         Generating NVIDIA GPU code
acc_routine2:
      8, Generating implicit acc routine seq
         Generating implicit acc routine seq
         Generating NVIDIA GPU code
testem:
     19, Generating copyout(arg) [if not already present]
         Generating NVIDIA GPU code
         20, !$acc loop gang ! blockidx%x
rogreen at sky6:~/quad/llvm205450$ ./a.out
 arg             2
`

https://github.com/llvm/llvm-project/pull/205450


More information about the flang-commits mailing list