[PATCH] D17019: [OpenMP] Code generation for teams - kernel launching

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 2 22:10:45 PST 2016


ABataev added inline comments.

================
Comment at: lib/CodeGen/CGOpenMPRuntime.cpp:49-51
@@ -48,2 +48,5 @@
     TargetRegion,
+    /// \brief Region that do not require function outlining and uses
+    /// information from a inner scope.
+    InlinedInnerRegion,
   };
----------------
Do we really need this one? I don't think it will be used in codegen for directives, so do not add it.

================
Comment at: lib/CodeGen/CGOpenMPRuntime.cpp:316-318
@@ +315,5 @@
+  static bool classof(const CGCapturedStmtInfo *Info) {
+    return CGOpenMPRegionInfo::classof(Info) &&
+           cast<CGOpenMPRegionInfo>(Info)->getRegionKind() ==
+               InlinedInnerRegion;
+  }
----------------
I think it will be enough just to return 'false' here always, it should not be used in any casting operations ever

================
Comment at: lib/CodeGen/CGOpenMPRuntime.cpp:4438-4440
@@ +4437,5 @@
+
+    if (NumTeams) {
+      assert(ThreadLimit && "Thread limit expression should be available along "
+                            "with number of teams.");
+      llvm::Value *OffloadingArgs[] = {
----------------
What if ThreadLimit is 'nullptr'? And why it cannot be 'nullptr' if NumTeams is not 'nullptr'?

================
Comment at: lib/CodeGen/CGStmtOpenMP.cpp:2712
@@ +2711,3 @@
+void CodeGenFunction::EmitOMPTeamsDirective(const OMPTeamsDirective &S) {
+  LexicalScope Scope(*this, S.getSourceRange());
+  const CapturedStmt &CS = *cast<CapturedStmt>(S.getAssociatedStmt());
----------------
Use 'OMPLexicalScope Scope(*this, S);' instead.


http://reviews.llvm.org/D17019





More information about the cfe-commits mailing list