reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
230 assert(!WebAssembly::isArgument(MI.getOpcode())); 232 if (MI.isDebugInstr() || MI.isLabel()) 232 if (MI.isDebugInstr() || MI.isLabel()) 238 if (WebAssembly::isTee(MI.getOpcode())) { 239 assert(MFI.isVRegStackified(MI.getOperand(0).getReg())); 240 assert(!MFI.isVRegStackified(MI.getOperand(1).getReg())); 241 Register OldReg = MI.getOperand(2).getReg(); 249 BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc), NewReg) 249 BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc), NewReg) 251 MI.getOperand(2).setReg(NewReg); 257 getLocalId(Reg2Local, CurLocal, MI.getOperand(1).getReg()); 259 BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc), 259 BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc), 260 MI.getOperand(0).getReg()) 262 .addReg(MI.getOperand(2).getReg()); 264 MI.eraseFromParent(); 271 assert(MI.getDesc().getNumDefs() <= 1); 272 if (MI.getDesc().getNumDefs() == 1) { 273 Register OldReg = MI.getOperand(0).getReg(); 277 auto InsertPt = std::next(MI.getIterator()); 278 if (MI.getOpcode() == WebAssembly::IMPLICIT_DEF) { 279 MI.eraseFromParent(); 286 BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc)) 293 BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc)) 297 MI.getOperand(0).setReg(NewReg); 301 MI.getOperand(0).setIsDead(false); 308 MachineInstr *InsertPt = &MI; 309 for (MachineOperand &MO : reverse(MI.explicit_uses())) { 319 assert(MI.isInlineAsm()); 323 MI.untieRegOperand(MI.getOperandNo(&MO)); 323 MI.untieRegOperand(MI.getOperandNo(&MO)); 337 if (MI.isInlineAsm()) { 340 MI.untieRegOperand(MI.getOperandNo(&MO)); 340 MI.untieRegOperand(MI.getOperandNo(&MO)); 351 BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc), NewReg) 359 if (WebAssembly::isCopy(MI.getOpcode())) { 360 MRI.replaceRegWith(MI.getOperand(1).getReg(), 361 MI.getOperand(0).getReg()); 362 MI.eraseFromParent();