[PATCH] D14158: [StatepointLowering] Remove distinction between call and invoke safepoints

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 28 21:15:44 PDT 2015


reames requested changes to this revision.
reames added a comment.
This revision now requires changes to proceed.

Looks straight forward.  Two minor comments, but once those are addressed (in particular, the HasDef one), should be a quick LGTM.


================
Comment at: lib/CodeGen/SelectionDAG/StatepointLowering.cpp:349
@@ +348,3 @@
+
+    if (GCResult && GCResult->getParent() != CS.getParent()) {
+      // Result value will be used in different basic block so we need to export
----------------
Shouldn't it be an assert that GCResult is available if HasDef?  Actually, no.  But I think the gc.result in basic block case is going to be encountering the no use of result case.  Is that what you want?

================
Comment at: lib/CodeGen/SelectionDAG/StatepointLowering.cpp:370
@@ -365,3 +369,3 @@
     } else {
       // The value of the statepoint itself will be the value of call itself.
       // We'll replace the actually call node shortly.  gc_result will grab
----------------
It looks like this comment is a bit stale.  Can you emphasis that this is handling a gc.result within the same basic block?  i.e. nothing specific to calls vs invokes.


Repository:
  rL LLVM

http://reviews.llvm.org/D14158





More information about the llvm-commits mailing list