mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Require the two-argument MI::addOperand(MF, MO) for dangling instructions.
Instructions that are inserted in a basic block can still be decorated with addOperand(MO). Make the two-argument addOperand() function contain the actual implementation. This function will now always have a valid MF reference that it can use for memory allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170798 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -603,11 +603,19 @@ void MachineInstr::AddRegOperandsToUseLists(MachineRegisterInfo &MRI) {
|
||||
MRI.addRegOperandToUseList(&Operands[i]);
|
||||
}
|
||||
|
||||
void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
MachineBasicBlock *MBB = getParent();
|
||||
assert(MBB && "Use MachineInstrBuilder to add operands to dangling instrs");
|
||||
MachineFunction *MF = MBB->getParent();
|
||||
assert(MF && "Use MachineInstrBuilder to add operands to dangling instrs");
|
||||
addOperand(*MF, Op);
|
||||
}
|
||||
|
||||
/// addOperand - Add the specified operand to the instruction. If it is an
|
||||
/// implicit operand, it is added to the end of the operand list. If it is
|
||||
/// an explicit operand it is added at the end of the explicit operand list
|
||||
/// (before the first implicit operand).
|
||||
void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
void MachineInstr::addOperand(MachineFunction &MF, const MachineOperand &Op) {
|
||||
assert(MCID && "Cannot add operands before providing an instr descriptor");
|
||||
bool isImpReg = Op.isReg() && Op.isImplicit();
|
||||
MachineRegisterInfo *RegInfo = getRegInfo();
|
||||
|
||||
Reference in New Issue
Block a user