[PATCH] D53295: [OpenCL] Mark load of block invoke function as invariant

John McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 15 12:03:49 PDT 2018


rjmccall added inline comments.


================
Comment at: lib/CodeGen/CGBlocks.cpp:1318
+        CGM.getModule().getMDKindID("invariant.load"),
+        llvm::MDNode::get(getLLVMContext(), None));
+
----------------
OpenCL blocks are still potentially function-local, right?  I don't think you're allowed to put `invariant.load` on something that's visibly initialized, even if it's visibly initialized to the same thing every time.  The problem is that `invariant.load` could allow the load to be hoisted above the initialization.

If you can solve that problem, you can make this non-OpenCL-specific.


https://reviews.llvm.org/D53295





More information about the cfe-commits mailing list