Skip to content

[flang][openacc] Flang hangs and continuously allocates memory when compiling gfortran test: goacc/loop-3.f95 #139776

Open
@tarunprabhu

Description

@tarunprabhu

Steps to reproduce:

Assuming that the LLVM test suite is checked out in ./llvm-test-suite, compile the test as follows:

$ flang -fopenacc ./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95

Observed behavior: Some warning messages are printed following which flang hangs and continuously allocates memory until either manually killed or an OOM error occurs. This was run with /usr/bin/time -v and terminated with SIGTERM after approx. 1 minute. The output in this case is provided below. Note the maximum resident set size and the number of page faults.

./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95:18:9: warning: Misplaced OpenACC end directive
    !$acc end loop ! { dg-error "Unexpected" }
          ^^^^^^^^
./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95:25:9: warning: Misplaced OpenACC end directive
    !$acc end loop ! { dg-error "Unexpected" }
          ^^^^^^^^
./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95:32:9: warning: Misplaced OpenACC end directive
    !$acc end loop ! { dg-error "Unexpected" }
          ^^^^^^^^
flang-21: error: unable to execute command: Terminated
flang-21: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 21.0.0git ([email protected]:llvm-project-tlp/llvm-project.git 84c1564d1825880d463d9f85153812f1f6805289)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /path/to/bin
Build config: +assertions
flang-21: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-21: note: diagnostic msg: /tmp/loop-3-2b0785
flang-21: note: diagnostic msg: /tmp/loop-3-2b0785.sh
flang-21: note: diagnostic msg: 

********************
Command exited with non-zero status 254
	Command being timed: "/path/to/bin/flang -fopenacc ./llvm-test-suite/Fortran/gfortran/regression/goacc/loop-3.f95"
	User time (seconds): 18.04
	System time (seconds): 53.96
	Percent of CPU this job got: 99%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 1:12.41
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 93215748
	Average resident set size (kbytes): 0
	Major (requiring I/O) page faults: 3
	Minor (reclaiming a frame) page faults: 23283575
	Voluntary context switches: 178
	Involuntary context switches: 96
	Swaps: 0
	File system inputs: 0
	File system outputs: 0
	Socket messages sent: 0
	Socket messages received: 0
	Signals delivered: 0
	Page size (bytes): 4096
	Exit status: 254

What follows is a minimal section of code from the original test that seems to reproduce this behavior.

subroutine test1
  implicit none
  integer :: i, j

  outer_loop1: do i = 1, 5
    !$acc loop
    inner_loop1: do j = 1,5
      if (i .eq. j) cycle outer_loop1 ! { dg-error "CYCLE statement" }
    end do inner_loop1
  end do outer_loop1
end subroutine test1

Another gfortran test, goacc/loop-3-2.f95 also exhibits similar behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    flangFlang issues not falling into any other category

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions