[PATCH] D128904: Bug fix "GC relocate is incorrectly tied to the statepoint"

Artur Pilipenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 1 20:12:12 PDT 2022


apilipenko added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:173
+    const Value *Statepoint = Relocate->getStatepoint();
+    if (isa<UndefValue>(Statepoint))
+      return None;
----------------
Assert `isa<GCStatepointInst, UndefValue>(Statepoint)`



================
Comment at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:1202
+  const Value *SI = CI.getStatepoint();
+
+  if (isa<UndefValue>(SI))
----------------
Assert `isa<GCStatepointInst, UndefValue>(SI)`


================
Comment at: llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp:1230
+  const Value *Statepoint = Relocate.getStatepoint();
+
+  if (isa<UndefValue>(Statepoint))
----------------
Assert `isa<GCStatepointInst, UndefValue>(SI)`


================
Comment at: llvm/lib/IR/Verifier.cpp:5164
       auto Token = Call.getArgOperand(0);
-      Check(isa<GCStatepointInst>(Token),
+      Check(isa<GCStatepointInst>(Token) || isa<UndefValue>(Token),
             "gc relocate is incorrectly tied to the statepoint", Call, Token);
----------------
isa<GCStatepointInst, UndefValue>(Token)


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

https://reviews.llvm.org/D128904



More information about the llvm-commits mailing list