Skip to content

Commit 98b73df

Browse files
wangzpgikcloudy0717
authored andcommitted
[flang][acc] Add TODO for cache directive lowering (llvm#170608)
The OpenACC cache directive is not yet fully implemented. Add a TODO to emit a clear "not yet implemented" error during lowering.
1 parent e28c30c commit 98b73df

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

flang/lib/Lower/OpenACC.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4787,6 +4787,8 @@ genACC(Fortran::lower::AbstractConverter &converter,
47874787
Fortran::semantics::SemanticsContext &semanticsContext,
47884788
const Fortran::parser::OpenACCCacheConstruct &cacheConstruct) {
47894789
fir::FirOpBuilder &builder = converter.getFirOpBuilder();
4790+
mlir::Location loc = converter.genLocation(cacheConstruct.source);
4791+
TODO(loc, "OpenACC cache directive");
47904792
auto loopOp = builder.getRegion().getParentOfType<mlir::acc::LoopOp>();
47914793
auto crtPos = builder.saveInsertionPoint();
47924794
if (loopOp) {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
! RUN: %not_todo_cmd bbc -fopenacc -emit-hlfir %s -o - 2>&1 | FileCheck %s
2+
3+
! CHECK: not yet implemented: OpenACC cache directive
4+
5+
subroutine test_cache()
6+
integer, parameter :: n = 10
7+
real, dimension(n) :: a, b
8+
integer :: i
9+
10+
!$acc loop
11+
do i = 1, n
12+
!$acc cache(b)
13+
a(i) = b(i)
14+
end do
15+
end subroutine

flang/test/Lower/OpenACC/acc-loop.f90

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -359,15 +359,6 @@ program acc_loop
359359
! CHECK: acc.yield
360360
! CHECK-NEXT: } attributes {inclusiveUpperbound = array<i1: true>, independent = [#acc.device_type<none>]}
361361

362-
!$acc loop
363-
DO i = 1, n
364-
!$acc cache(b)
365-
a(i) = b(i)
366-
END DO
367-
368-
! CHECK: %[[CACHE:.*]] = acc.cache varPtr(%{{.*}} : !fir.ref<!fir.array<10xf32>>) -> !fir.ref<!fir.array<10xf32>> {name = "b"}
369-
! CHECK: acc.loop {{.*}} cache(%[[CACHE]] : !fir.ref<!fir.array<10xf32>>)
370-
371362
!$acc loop
372363
do 100 i=0, n
373364
100 continue

0 commit comments

Comments
 (0)