reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/ExpandPostRAPseudos.cpp
   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);