[llvm] 248a67f - [Statepoint] Turn assert into check in foldPatchpoint.

Denis Antrushin via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 28 06:01:52 PDT 2020


Author: Denis Antrushin
Date: 2020-08-28T20:00:23+07:00
New Revision: 248a67f1445d716cd18a588db35328d1f5b501c8

URL: https://github.com/llvm/llvm-project/commit/248a67f1445d716cd18a588db35328d1f5b501c8
DIFF: https://github.com/llvm/llvm-project/commit/248a67f1445d716cd18a588db35328d1f5b501c8.diff

LOG: [Statepoint] Turn assert into check in foldPatchpoint.

Original D81646 had check for tied regs in foldPatchpoint().
Due to unfortunate miscommunication with review comments and
adressing some comments post commit, it turned into assertion.

We had an offline talk and agreed that with current implementation
this path is possible, so I'm changing it back to check.

Note that this is workaround until ussues described in PR46917 are
resolved.

Added: 
    

Modified: 
    llvm/lib/CodeGen/TargetInstrInfo.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/TargetInstrInfo.cpp b/llvm/lib/CodeGen/TargetInstrInfo.cpp
index c71bf7c74808..fe9feb5f116b 100644
--- a/llvm/lib/CodeGen/TargetInstrInfo.cpp
+++ b/llvm/lib/CodeGen/TargetInstrInfo.cpp
@@ -499,14 +499,14 @@ static MachineInstr *foldPatchpoint(MachineFunction &MF, MachineInstr &MI,
   // Return false if any operands requested for folding are not foldable (not
   // part of the stackmap's live values).
   for (unsigned Op : Ops) {
-    // Caller is expected to avoid passing in tied operands
-    assert(!MI.getOperand(Op).isTied());
     if (Op < NumDefs) {
       assert(DefToFoldIdx == MI.getNumOperands() && "Folding multiple defs");
       DefToFoldIdx = Op;
     } else if (Op < StartIdx) {
       return nullptr;
     }
+    if (MI.getOperand(Op).isTied())
+      return nullptr;
   }
 
   MachineInstr *NewMI =


        


More information about the llvm-commits mailing list