reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
76 MachineBasicBlock *MBB = MI->getParent(); 77 assert((MI->getOperand(0).isReg() && MI->getOperand(0).isDef()) && 77 assert((MI->getOperand(0).isReg() && MI->getOperand(0).isDef()) && 78 MI->getOperand(1).isImm() && 79 (MI->getOperand(2).isReg() && MI->getOperand(2).isUse()) && 79 (MI->getOperand(2).isReg() && MI->getOperand(2).isUse()) && 80 MI->getOperand(3).isImm() && "Invalid subreg_to_reg"); 82 Register DstReg = MI->getOperand(0).getReg(); 83 Register InsReg = MI->getOperand(2).getReg(); 84 assert(!MI->getOperand(2).getSubReg() && "SubIdx on physreg?"); 85 unsigned SubIdx = MI->getOperand(3).getImm(); 95 LLVM_DEBUG(dbgs() << "subreg: CONVERTING: " << *MI); 97 if (MI->allDefsAreDead()) { 98 MI->setDesc(TII->get(TargetOpcode::KILL)); 99 MI->RemoveOperand(3); // SubIdx 100 MI->RemoveOperand(1); // Imm 101 LLVM_DEBUG(dbgs() << "subreg: replaced by: " << *MI); 111 MI->setDesc(TII->get(TargetOpcode::KILL)); 112 MI->RemoveOperand(3); // SubIdx 113 MI->RemoveOperand(1); // Imm 114 LLVM_DEBUG(dbgs() << "subreg: replace by: " << *MI); 119 TII->copyPhysReg(*MBB, MI, MI->getDebugLoc(), DstSubReg, InsReg, 119 TII->copyPhysReg(*MBB, MI, MI->getDebugLoc(), DstSubReg, InsReg, 120 MI->getOperand(2).isKill()); 123 MachineBasicBlock::iterator CopyMI = MI; 130 MBB->erase(MI);