[llvm] [MachineInstr] add insert method for variadic instructions (PR #67699)
Nick Desaulniers via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 30 09:56:12 PDT 2023
================
@@ -2475,3 +2475,45 @@ MachineInstr::getFirst5RegLLTs() const {
Reg2, getRegInfo()->getType(Reg2), Reg3, getRegInfo()->getType(Reg3),
Reg4, getRegInfo()->getType(Reg4));
}
+
+void MachineInstr::insert(mop_iterator It, ArrayRef<MachineOperand> Ops) {
+ if (!It || Ops.empty())
+ return;
+
+ // Do one pass to untie operands.
+ DenseMap<unsigned, unsigned> TiedOpIndices;
+ for (const MachineOperand &MO : operands()) {
+ if (MO.isReg() && MO.isTied()) {
+ unsigned OpNo = getOperandNo(&MO);
+ unsigned TiedTo = findTiedOperandIdx(OpNo);
+ TiedOpIndices[OpNo] = TiedTo;
+ untieRegOperand(OpNo);
+ }
+ }
+
+ assert(It->getParent() == this && "iterator points to operand of other inst");
----------------
nickdesaulniers wrote:
done in https://github.com/llvm/llvm-project/pull/67699/commits/69b94e345e87ec19af8898053ae9e4b8da208b63
https://github.com/llvm/llvm-project/pull/67699
More information about the llvm-commits
mailing list