/// is returned with the specified operand folded, otherwise NULL is
/// returned. The client is responsible for removing the old
/// instruction and adding the new one in the instruction stream
- virtual MachineInstr* foldMemoryOperand(MachineBasicBlock::iterator MI,
+ virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
unsigned OpNum,
int FrameIndex) const {
return NULL;
}
-MachineInstr* X86RegisterInfo::foldMemoryOperand(
- MachineBasicBlock::iterator MI,
- unsigned i,
- int FrameIndex) const {
+MachineInstr* X86RegisterInfo::foldMemoryOperand(MachineInstr* MI,
+ unsigned i,
+ int FrameIndex) const {
if (NoFusing) return NULL;
/// FIXME: This should obviously be autogenerated by tablegen when patterns
/// folding and return true, otherwise it should return false. If it folds
/// the instruction, it is likely that the MachineInstruction the iterator
/// references has been changed.
- virtual MachineInstr* foldMemoryOperand(MachineBasicBlock::iterator MI,
+ virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
unsigned OpNum,
int FrameIndex) const;