rjmccall added inline comments.

================
Comment at: clang/lib/AST/StmtProfile.cpp:777
+    if (E)
+      Profiler->VisitStmt(E);
+  }
----------------
Can `E` actually be null here?


================
Comment at: clang/lib/CodeGen/CGExpr.cpp:3952
+           CGM.getOpenMPRuntime().isNontemporalDecl(Field)) ||
+          (!E->isArrow() && BaseLV.isNontemporal()))
+        LV.setNontemporal(/*Value=*/true);
----------------
Is the `!E->isArrow()` condition necessary here?  Why not just propagate the 
non-temporality of the base?

Similarly, what's the case in which the declaration is marked non-temporal and 
you *don't* want to trust that?


================
Comment at: clang/lib/CodeGen/CGOpenMPRuntime.cpp:11349
+  NontemporalDeclsSet &DS =
+      CGM.getOpenMPRuntime().NontemporalDeclsStack.emplace_back();
+  // No need to check for nontemporal clauses in non-simd directives.
----------------
This is effectively clearing the active non-temporal decls set.  Is that okay 
(even for the non-SIMD directives?), or should the current set be copied?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71708



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

Reply via email to