Lines Matching refs:VReg
81 // If the node is only used by a CopyToReg and the dest reg is a vreg, use
82 // the CopyToReg'd destination register instead of creating a new vreg.
196 // is a vreg in the same register class, use the CopyToReg'd destination
197 // register instead of creating a new vreg.
251 unsigned VReg = getDstOfOnlyCopyToRegUse(Op.getNode(), Op.getResNo());
254 if (!VReg) {
256 VReg = MRI->createVirtualRegister(RC);
259 TII->get(TargetOpcode::IMPLICIT_DEF), VReg);
260 return VReg;
282 unsigned VReg = getVR(Op, VRBaseMap);
283 assert(TargetRegisterInfo::isVirtualRegister(VReg) && "Not a vreg?");
291 // shrink VReg's register class within reason. For example, if VReg == GR32
292 // and II requires a GR32_NOSP, just constrain VReg to GR32_NOSP.
299 if (DstRC && !MRI->constrainRegClass(VReg, DstRC, MinRCSize)) {
302 TII->get(TargetOpcode::COPY), NewVReg).addReg(VReg);
303 VReg = NewVReg;
328 MI->addOperand(MachineOperand::CreateReg(VReg, isOptDef,
402 unsigned InstrEmitter::ConstrainForSubReg(unsigned VReg, unsigned SubIdx,
404 const TargetRegisterClass *VRC = MRI->getRegClass(VReg);
407 // RC is a sub-class of VRC that supports SubIdx. Try to constrain VReg
410 RC = MRI->constrainRegClass(VReg, RC, MinRCSize);
412 // VReg has been adjusted. It can be used with SubIdx operands now.
414 return VReg;
416 // VReg couldn't be reasonably constrained. Emit a COPY to a new virtual
422 .addReg(VReg);
434 // If the node is only used by a CopyToReg and the dest reg is a vreg, use
435 // the CopyToReg'd destination register instead of creating a new vreg.
456 unsigned VReg = getVR(Node->getOperand(0), VRBaseMap);
457 MachineInstr *DefMI = MRI->getVRegDef(VReg);
471 // VReg may not support a SubIdx sub-register, and we may need to
474 VReg = ConstrainForSubReg(VReg, SubIdx,
484 TII->get(TargetOpcode::COPY), VRBase).addReg(VReg, 0, SubIdx);
547 unsigned VReg = getVR(Node->getOperand(0), VRBaseMap);
549 // Create the new VReg in the destination class and emit a copy.
554 NewVReg).addReg(VReg);
580 // Skip physical registers as they don't have a vreg to get and we'll