Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:VReg

98   // If the node is only used by a CopyToReg and the dest reg is a vreg, use
99 // the CopyToReg'd destination register instead of creating a new vreg.
216 // is a vreg in the same register class, use the CopyToReg'd destination
217 // register instead of creating a new vreg.
272 unsigned VReg = getDstOfOnlyCopyToRegUse(Op.getNode(), Op.getResNo());
275 if (!VReg) {
278 VReg = MRI->createVirtualRegister(RC);
281 TII->get(TargetOpcode::IMPLICIT_DEF), VReg);
282 return VReg;
305 unsigned VReg = getVR(Op, VRBaseMap);
306 assert(TargetRegisterInfo::isVirtualRegister(VReg) && "Not a vreg?");
314 // shrink VReg's register class within reason. For example, if VReg == GR32
315 // and II requires a GR32_NOSP, just constrain VReg to GR32_NOSP.
320 if (DstRC && !MRI->constrainRegClass(VReg, DstRC, MinRCSize)) {
323 TII->get(TargetOpcode::COPY), NewVReg).addReg(VReg);
324 VReg = NewVReg;
350 MIB.addReg(VReg, getDefRegState(isOptDef) | getKillRegState(isKill) |
424 unsigned InstrEmitter::ConstrainForSubReg(unsigned VReg, unsigned SubIdx,
426 const TargetRegisterClass *VRC = MRI->getRegClass(VReg);
429 // RC is a sub-class of VRC that supports SubIdx. Try to constrain VReg
432 RC = MRI->constrainRegClass(VReg, RC, MinRCSize);
434 // VReg has been adjusted. It can be used with SubIdx operands now.
436 return VReg;
438 // VReg couldn't be reasonably constrained. Emit a COPY to a new virtual
444 .addReg(VReg);
456 // If the node is only used by a CopyToReg and the dest reg is a vreg, use
457 // the CopyToReg'd destination register instead of creating a new vreg.
479 unsigned VReg = getVR(Node->getOperand(0), VRBaseMap);
480 MachineInstr *DefMI = MRI->getVRegDef(VReg);
496 // VReg may not support a SubIdx sub-register, and we may need to
499 VReg = ConstrainForSubReg(VReg, SubIdx,
509 TII->get(TargetOpcode::COPY), VRBase).addReg(VReg, 0, SubIdx);
572 unsigned VReg = getVR(Node->getOperand(0), VRBaseMap);
574 // Create the new VReg in the destination class and emit a copy.
580 NewVReg).addReg(VReg);
605 // Skip physical registers as they don't have a vreg to get and we'll