[Openmp-commits] [clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

Alexey Bataev via Openmp-commits openmp-commits at lists.llvm.org
Fri May 9 11:12:07 PDT 2025


================
@@ -14145,6 +14152,46 @@ StmtResult SemaOpenMP::ActOnOpenMPTargetTeamsDistributeSimdDirective(
       getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
 }
 
+// Overloaded base case function
+template <typename T, typename F> static bool tryHandleAs(T *t, F &&) {
+  return false;
+}
+
+/**
+ * Tries to recursively cast `t` to one of the given types and invokes `f` if
+ * successful.
+ *
+ * @tparam Class The first type to check.
+ * @tparam Rest The remaining types to check.
+ * @tparam T The base type of `t`.
+ * @tparam F The callable type for the function to invoke upon a successful
+ * cast.
+ * @param t The object to be checked.
+ * @param f The function to invoke if `t` matches `Class`.
+ * @return `true` if `t` matched any type and `f` was called, otherwise `false`.
+ */
----------------
alexey-bataev wrote:

Use `///` style

https://github.com/llvm/llvm-project/pull/139293


More information about the Openmp-commits mailing list