Issue |
148386
|
Summary |
Flang OpenMP doesn't appear to correctly process metadirectives in .F files and warn the user its not yet implemented.
|
Labels |
flang
|
Assignees |
|
Reporter |
scamp-nvidia
|
Testing SPEC Accel V2 OMP has presented an issue with how Flang OpenMP processes .F files when metadirectives are used. Consider the following example:
test.F
```
#define OMP_TARGET .true.
#define OMP_SIMD .false.
program test
implicit none
integer i,j,n
n = 100
!$omp metadirective
!$omp& when(user={condition(OMP_TARGET.or.OMP_SIMD)}:
!$omp& target teams distribute parallel do )
!$omp& default(target teams loop)
do i=0,n
do j=0,n
write(*,*) "Test"
enddo
enddo
return
end program
```
If I try to compile this with a recent Flang build, it "appears" to compile correctly using the OpenMP directive. However, it entirely ignores it as a comment instead, I suspect. Whereas, if I copy the same .F file to a .F90 file, then I correctly get an error message telling me that Flang does not yet have metadirectives implemented.
```
scamp@genx4:/local/home/scamp/450.md_lop_1$ flang test.F -fopenmp -fopenmp-version=50 -c
warning: OpenMP support for version 50 in flang is still incomplete
scamp@genx4:/local/home/scamp/450.md_lop_1$ cp -f test.F test.F90
scamp@genx4:/local/home/scamp/450.md_lop_1$ flang test.F90 -fopenmp -fopenmp-version=50 -c
warning: OpenMP support for version 50 in flang is still incomplete
error: loc("/local/home/scamp/450.md_lop_1/test.F90":6:7): /proj/build/llvm/Linux_x86_64/flang/lib/Lower/OpenMP/OpenMP.cpp:3495: not yet implemented: METADIRECTIVE
LLVM ERROR: aborting
```
Obviously this behavior could lead to user confusion.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs