[PATCH] D71179: [OpenMP][WIP] Initial support for `begin/end declare variant`

Johannes Doerfert via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Dec 8 17:33:23 PST 2019


jdoerfert marked 4 inline comments as done.
jdoerfert added inline comments.


================
Comment at: clang/lib/AST/StmtOpenMP.cpp:2243
 }
+
+// TODO: We have various representations for the same data, it might help to
----------------
This code was basically only moved, not written for this patch. It needs to life somewhere accessible from Parser to CodeGen, see the TODOs below.


================
Comment at: clang/lib/Headers/__clang_cuda_cmath.h:38
 #endif
 
-// For C++ 17 we need to include noexcept attribute to be compatible
----------------
NOTE: It might be cleaner to revert the patches that put the OpenMP handling code here first.


================
Comment at: clang/lib/Headers/__clang_cuda_cmath.h:70
 __DEVICE__ float fmod(float __x, float __y) { return ::fmodf(__x, __y); }
-// TODO: remove when variant is supported
-#ifndef _OPENMP
----------------
As far as I can tell, `fpclassify` is not available in CUDA so it is unclear if we want to have it here or not. I removed it due to the TODO above. Consequently I also had to remove other `fpclassify` occurrences. If it turns out the host version is not usable on the device and we need the builtins, we add them back but under the opposite guard, that is `#ifdef _OPENMP`.


================
Comment at: clang/lib/Parse/ParseOpenMP.cpp:1048
 }
 
-/// Parse clauses for '#pragma omp declare variant ( variant-func-id ) clause'.
----------------
The diff is confusing here. I actually extracted some code into a helper function (`ParseOMPDeclareVariantMatchClause` on the right) which I can reuse in the begin/end handling. The code "deleted" here is below `ParseOMPDeclareVariantMatchClause` on the right.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71179





More information about the cfe-commits mailing list