[PATCH] D118887: [OpenMP][Clang] Allow ancestor device modifier only with reverse offloading

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 3 05:20:10 PST 2022


ABataev added inline comments.


================
Comment at: clang/test/OpenMP/target_device_codegen.cpp:43-47
-  // CHECK-NOT:   call i32 @__tgt_target_mapper(%struct.ident_t* @{{.+}},
-  // CHECK:       call void @__omp_offloading_{{.+}}_l46()
-  // CHECK-NOT:   call i32 @__tgt_target_mapper(%struct.ident_t* @{{.+}},
-  #pragma omp target device(ancestor: n)
-  ;
----------------
saiislam wrote:
> ABataev wrote:
> > Do we have a codegen test for the ancestor modifier?
> We shouldn't have a test for ancestor modifier because it can only be used when requires reverse_offload is specified and Spec 5.2 says that if an implementation is not supporting a requirement (reverse offload in this case) then it should give compile-time error termination [1].
> 
> I am going to propose this change in a different phab review.
> 
> [1] [[ https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-2.pdf | OpenMP API Specification 5.2 ]], Section 8.2.1, lines 12-13, page 212.
I'm not asking about runtime test but the unit test. We should check at least that using this modifier does not crash the compiler. Could you restore this test here and add `#pragma omp requires reverse_offload` instead?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118887/new/

https://reviews.llvm.org/D118887



More information about the cfe-commits mailing list