[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