Home | History | Annotate | Download | only in CodeGen

Lines Matching full:subreg

160     bool findNextSource(unsigned Reg, unsigned SubReg,
225 ValueTrackerResult(unsigned Reg, unsigned SubReg) : Inst(nullptr) {
226 addSource(Reg, SubReg);
256 assert(Idx < getNumSources() && "SubReg source out of index");
257 return RegSrcs[Idx].SubReg;
406 /// result, then replace all reachable uses of the source with the subreg of the
607 /// for the value defined by \p Reg and \p SubReg.
614 /// share the same register file as \p Reg and \p SubReg. The client should
617 bool PeepholeOptimizer::findNextSource(unsigned Reg, unsigned SubReg,
628 TargetInstrInfo::RegSubRegPair CurSrcPair(Reg, SubReg);
639 ValueTracker ValTracker(CurSrcPair.Reg, CurSrcPair.SubReg, *MRI,
677 CurSrcPair.SubReg = Res.getSrcSubReg(0);
686 ShouldRewrite = TRI->shouldRewriteCopySrc(DefRC, SubReg, SrcRC,
687 CurSrcPair.SubReg);
728 MIB.addReg(RegPair.Reg, 0, RegPair.SubReg);
813 /// \brief Given a \p Def.Reg and Def.SubReg pair, use \p RewriteMap to find
825 TargetInstrInfo::RegSubRegPair LookupSrc(Def.Reg, Def.SubReg);
836 LookupSrc.SubReg = Res.getSrcSubReg(0);
945 .addReg(NewSrc.Reg, 0, NewSrc.SubReg);
947 NewCopy->getOperand(0).setSubReg(Def.SubReg);
948 if (Def.SubReg)
1220 if (CpyRewriter->RewriteCurrentSource(NewSrc.Reg, NewSrc.SubReg)) {
1262 unsigned Reg, SubReg, CopyDefReg, CopyDefSubReg;
1263 while (CpyRewriter->getNextRewritableSource(Reg, SubReg, CopyDefReg,
1273 if (!findNextSource(Def.Reg, Def.SubReg, RewriteMap))
1680 // If we look for a different subreg, it means we want a subreg of src.
1699 // If we look for a different subreg, it means we want a subreg of the src.
1728 // The case we are checking is Def.<subreg> = REG_SEQUENCE.
1730 // the register level (as opposed to the subreg level).
1754 // Check if one of the operand defines the subreg we are interested in.
1757 if (RegSeqInput.SubReg)
1761 return ValueTrackerResult(RegSeqInput.Reg, RegSeqInput.SubReg);
1765 // If the subreg we are tracking is super-defined by another subreg,
1767 // the subreg and we do not do that for now.
1776 // If we are composing subreg, bail out.
1799 return ValueTrackerResult(InsertedReg.Reg, InsertedReg.SubReg);
1809 BaseReg.SubReg)
1819 // At this point, the value is available in v0 via the same subreg
1845 // Likewise, if v0.subreg != 0, we would have to compose v0.subreg with sub0.
1846 if (ExtractSubregInputReg.SubReg)
1860 // determine the right subreg in v0.
1864 // Likewise, if v0.subreg != 0, we would have to compose it with sub0.
1877 // If we look for a different subreg, bail as we do not support composing