jdoerfert added inline comments.

================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:8634
+def warn_hip_omp_target_directives : Warning<
+  "HIP does not support OpenMP target directives; directive has been ignored">,
+  InGroup<HIPOpenMPOffloading>;
----------------
yaxunl wrote:
> jdoerfert wrote:
> > yaxunl wrote:
> > > jdoerfert wrote:
> > > > mhalk wrote:
> > > > > jdoerfert wrote:
> > > > > > I doubt the ignored part very much.
> > > > > I just re-checked the LLVM IR of an example.
> > > > > With -x c++ there are __kmpc_target_(de)init calls; with -x hip there 
> > > > > are none.
> > > > > https://godbolt.org/z/fhds46Pvc
> > > > > 
> > > > > From my point of view, "effectively", target directives seem to have 
> > > > > been ignored.
> > > > > Maybe this is a coincidence (there's definitely some uncertainty) or 
> > > > > I am misinterpreting the IR.
> > > > > I would be glad if you could shed some light on this, if possible / 
> > > > > you find the time to do so.
> > > > Line 512 in the HIP output: https://godbolt.org/z/n5s5jz7j9.
> > > If I remove --offload-arch for the C++ program, I got the same result as 
> > > for HIP:
> > > 
> > > https://godbolt.org/z/4TMzxdfj6
> > > 
> > > Does that mean we should emit the same error for C++ too?
> > I honestly do not follow your logic.
> > 
> > As I said in the beginning: I doubt the directive is ignored.
> > 
> > My link showed you that it doesn't ignore the pragma, e.g., the code w/ and 
> > w/o the pragma have different results.
> > This is also true for C++, but that doesn't make the warning any more 
> > accurate.
> > 
> I understand that the directive is not ignored and incorrect IR are emitted.
> 
> What I mean is that compiling "omp target" with HIP is equivalent to 
> compiling C++ containing "omp target" without -fopenmp-targets specified in 
> clang FE, therefore the error should be emitted in a more generic case. That 
> is:
> 
> if "omp target" is compiled without -fopenmp-targets specified in FE, an 
> error should be emitted.
> incorrect IR are emitted.

No, that IR is not incorrect. It is exactly what should be emitted.

> if "omp target" is compiled without -fopenmp-targets specified in FE, an 
> error should be emitted.

No it should not. OpenMP target w/o an offloading target is well defined OpenMP.




Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D145591

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to