reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
262 assert(MI->allDefsAreDead() && "Def isn't really dead"); 263 SlotIndex Idx = LIS.getInstructionIndex(*MI).getRegSlot(); 266 if (MI->isBundled()) { 270 if (MI->isInlineAsm()) { 271 LLVM_DEBUG(dbgs() << "Won't delete: " << Idx << '\t' << *MI); 277 if (!MI->isSafeToMove(nullptr, SawStore)) { 278 LLVM_DEBUG(dbgs() << "Can't delete: " << Idx << '\t' << *MI); 282 LLVM_DEBUG(dbgs() << "Deleting dead def " << Idx << '\t' << *MI); 292 if (VRM && MI->getOperand(0).isReg() && MI->getOperand(0).isDef() && 292 if (VRM && MI->getOperand(0).isReg() && MI->getOperand(0).isDef() && 293 MI->getDesc().getNumDefs() == 1) { 294 Dest = MI->getOperand(0).getReg(); 307 for (MachineInstr::mop_iterator MOI = MI->operands_begin(), 308 MOE = MI->operands_end(); MOI != MOE; ++MOI) { 326 if ((MI->readsVirtualRegister(Reg) && (MI->isCopy() || MOI->isDef())) || 326 if ((MI->readsVirtualRegister(Reg) && (MI->isCopy() || MOI->isDef())) || 348 MI->setDesc(TII.get(TargetOpcode::KILL)); 350 for (unsigned i = MI->getNumOperands(); i; --i) { 351 const MachineOperand &MO = MI->getOperand(i-1); 354 MI->RemoveOperand(i-1); 356 LLVM_DEBUG(dbgs() << "Converted physregs to:\t" << *MI); 363 if (isOrigDef && DeadRemats && TII.isTriviallyReMaterializable(*MI, AA)) { 368 DeadRemats->insert(MI); 370 MI->substituteRegister(Dest, NewLI.reg, 0, TRI); 371 MI->getOperand(0).setIsDead(true); 374 TheDelegate->LRE_WillEraseInstruction(MI); 375 LIS.RemoveMachineInstrFromMaps(*MI); 376 MI->eraseFromParent();