Home
last modified time | relevance | path

Searched refs:SubReg (Results 1 – 25 of 99) sorted by relevance

1234

/freebsd/contrib/llvm-project/llvm/lib/Target/Mips/MCTargetDesc/
H A DMipsOptionRecord.cpp74 for (const MCPhysReg &SubReg : MCRegInfo->subregs_inclusive(Reg)) { in SetPhysRegUsed() local
75 unsigned EncVal = MCRegInfo->getEncodingValue(SubReg); in SetPhysRegUsed()
78 if (GPR32RegClass->contains(SubReg) || GPR64RegClass->contains(SubReg)) in SetPhysRegUsed()
80 else if (COP0RegClass->contains(SubReg)) in SetPhysRegUsed()
83 else if (FGR32RegClass->contains(SubReg) || in SetPhysRegUsed()
84 FGR64RegClass->contains(SubReg) || in SetPhysRegUsed()
85 AFGR64RegClass->contains(SubReg) || in SetPhysRegUsed()
86 MSA128BRegClass->contains(SubReg)) in SetPhysRegUsed()
88 else if (COP2RegClass->contains(SubReg)) in SetPhysRegUsed()
90 else if (COP3RegClass->contains(SubReg)) in SetPhysRegUsed()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DLiveVariables.cpp223 for (MCPhysReg SubReg : TRI->subregs(Reg)) { in FindLastPartialDef() local
224 MachineInstr *Def = PhysRegDef[SubReg]; in FindLastPartialDef()
229 LastDefReg = SubReg; in FindLastPartialDef()
272 for (MCPhysReg SubReg : TRI->subregs(Reg)) { in HandlePhysRegUse() local
273 if (Processed.count(SubReg)) in HandlePhysRegUse()
275 if (PartDefRegs.count(SubReg)) in HandlePhysRegUse()
279 LastPartialDef->addOperand(MachineOperand::CreateReg(SubReg, in HandlePhysRegUse()
282 PhysRegDef[SubReg] = LastPartialDef; in HandlePhysRegUse()
283 Processed.insert_range(TRI->subregs(SubReg)); in HandlePhysRegUse()
293 for (MCPhysReg SubReg : TRI->subregs_inclusive(Reg)) in HandlePhysRegUse() local
[all …]
H A DLiveIntervalCalc.cpp57 unsigned SubReg = MO.getSubReg(); in calculate() local
58 if (LI.hasSubRanges() || (SubReg != 0 && TrackSubRegs)) { in calculate()
59 LaneBitmask SubMask = SubReg != 0 ? TRI.getSubRegIndexLaneMask(SubReg) in calculate()
157 unsigned SubReg = MO.getSubReg(); in extendToUses() local
158 if (SubReg != 0) { in extendToUses()
159 LaneBitmask SLM = TRI.getSubRegIndexLaneMask(SubReg); in extendToUses()
H A DPeepholeOptimizer.cpp408 Src.SubReg = MOInsertedReg.getSubReg(); in getNextRewritableSource()
412 Dst.SubReg = CopyLike.getOperand(CurrentSrcIdx + 1).getImm(); in getNextRewritableSource()
619 ValueTrackerResult(Register Reg, unsigned SubReg) { addSource(Reg, SubReg); } in ValueTrackerResult() argument
651 return RegSrcs[Idx].SubReg; in getSrcSubReg()
1018 ValueTracker ValTracker(CurSrcPair.Reg, CurSrcPair.SubReg, *MRI, TII); in findNextSource()
1071 CurSrcPair.SubReg)) in findNextSource()
1076 if (PHICount > 0 && CurSrcPair.SubReg != 0) in findNextSource()
1102 assert(SrcRegs[0].SubReg == 0 && "should not have subreg operand"); in insertPHI()
1110 MIB.addReg(RegPair.Reg, 0, RegPair.SubReg); in insertPHI()
1133 RegSubRegPair LookupSrc(Def.Reg, Def.SubReg); in getNewSource()
[all …]
H A DDetectDeadLanes.cpp92 unsigned SubReg = MI.getOperand(2).getImm(); in isCrossCopy() local
93 SrcSubIdx = TRI.composeSubRegIndices(SubReg, SrcSubIdx); in isCrossCopy()
343 unsigned SubReg = MO.getSubReg(); in determineInitialUsedLanes() local
366 if (SubReg == 0) in determineInitialUsedLanes()
369 UsedLanes |= TRI->getSubRegIndexLaneMask(SubReg); in determineInitialUsedLanes()
426 unsigned SubReg = MO.getSubReg(); in isUndefRegAtInput() local
427 LaneBitmask Mask = TRI->getSubRegIndexLaneMask(SubReg); in isUndefRegAtInput()
H A DLiveIntervals.cpp600 unsigned SubReg = MO.getSubReg(); in shrinkToUses() local
601 if (SubReg != 0) { in shrinkToUses()
602 LaneBitmask LaneMask = TRI->getSubRegIndexLaneMask(SubReg); in shrinkToUses()
827 unsigned SubReg = MO.getSubReg(); in addKillFlags() local
828 LaneBitmask UseMask = SubReg ? TRI->getSubRegIndexLaneMask(SubReg) in addKillFlags()
1077 unsigned SubReg = MO.getSubReg(); in updateAllRanges() local
1078 LaneBitmask LaneMask = SubReg ? TRI.getSubRegIndexLaneMask(SubReg) in updateAllRanges()
1094 unsigned SubReg = MO.getSubReg(); in updateAllRanges() local
1095 LaneBitmask LaneMask = SubReg ? TRI.getSubRegIndexLaneMask(SubReg) in updateAllRanges()
1511 unsigned SubReg = MO.getSubReg(); in findLastUseBefore() local
[all …]
H A DLiveRangeEdit.cpp140 unsigned SubReg = MO.getSubReg(); in allUsesAvailableAt() local
141 LaneBitmask LM = SubReg ? TRI->getSubRegIndexLaneMask(SubReg) in allUsesAvailableAt()
269 unsigned SubReg = MO.getSubReg(); in useIsKill() local
270 LaneBitmask LaneMask = TRI.getSubRegIndexLaneMask(SubReg); in useIsKill()
H A DVirtRegMap.cpp221 const LiveInterval &LI, const MachineBasicBlock &MBB, unsigned SubReg,
609 const LiveInterval &LI, const MachineBasicBlock &MBB, unsigned SubReg, in liveOutUndefPhiLanesForUndefSubregDef() argument
611 LaneBitmask UndefMask = ~TRI->getSubRegIndexLaneMask(SubReg); in liveOutUndefPhiLanesForUndefSubregDef()
667 unsigned SubReg = MO.getSubReg(); in rewrite() local
668 if (SubReg != 0) { in rewrite()
697 liveOutUndefPhiLanesForUndefSubregDef(LI, *MBBI, SubReg, in rewrite()
732 PhysReg = TRI->getSubReg(PhysReg, SubReg); in rewrite()
H A DMachineInstrBundle.cpp298 unsigned SubReg = MO.getSubReg(); in AnalyzeVirtRegLanesInBundle() local
299 if (SubReg == 0 && MO.isUse() && !MO.isUndef()) in AnalyzeVirtRegLanesInBundle()
302 LaneBitmask SubRegMask = TRI.getSubRegIndexLaneMask(SubReg); in AnalyzeVirtRegLanesInBundle()
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64AdvSIMDScalarPass.cpp102 static bool isGPR64(unsigned Reg, unsigned SubReg, in isGPR64() argument
104 if (SubReg) in isGPR64()
111 static bool isFPR64(unsigned Reg, unsigned SubReg, in isFPR64() argument
115 SubReg == 0) || in isFPR64()
117 SubReg == AArch64::dsub); in isFPR64()
119 return (AArch64::FPR64RegClass.contains(Reg) && SubReg == 0) || in isFPR64()
120 (AArch64::FPR128RegClass.contains(Reg) && SubReg == AArch64::dsub); in isFPR64()
127 unsigned &SubReg) { in getSrcFromCopy() argument
128 SubReg = 0; in getSrcFromCopy()
136 SubReg = AArch64::dsub; in getSrcFromCopy()
[all …]
H A DSMEPeepholeOpt.cpp262 MCRegister SubReg = MCRegister::NoRegister; in visitRegSequence() local
272 if (SubReg == MCRegister::NoRegister) in visitRegSequence()
273 SubReg = OpSubReg; in visitRegSequence()
276 if (!CopySrcOp || !CopySrcOp->isReg() || OpSubReg != SubReg || in visitRegSequence()
H A DAArch64RegisterInfo.cpp364 for (MCPhysReg SubReg : in UpdateCustomCallPreservedMask() local
368 UpdatedMask[SubReg / 32] |= 1u << (SubReg % 32); in UpdateCustomCallPreservedMask()
477 for (MCPhysReg SubReg : subregs_inclusive(AArch64::ZA)) in getStrictlyReservedRegs() local
478 Reserved.set(SubReg); in getStrictlyReservedRegs()
485 for (MCSubRegIterator SubReg(AArch64::ZT0, this, /*self=*/true); in getStrictlyReservedRegs() local
486 SubReg.isValid(); ++SubReg) in getStrictlyReservedRegs()
487 Reserved.set(*SubReg); in getStrictlyReservedRegs()
1320 MachineInstr *MI, const TargetRegisterClass *SrcRC, unsigned SubReg, in shouldCoalesce() argument
1355 if (MI->isCopy() && SubReg != DstSubReg && in shouldCoalesce()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DGCNRewritePartialRegUses.cpp96 unsigned shiftSubReg(unsigned SubReg, unsigned RShift) const;
167 unsigned GCNRewritePartialRegUsesImpl::shiftSubReg(unsigned SubReg, in shiftSubReg() argument
169 unsigned Offset = TRI->getSubRegIdxOffset(SubReg) - RShift; in shiftSubReg()
170 return getSubReg(Offset, TRI->getSubRegIdxSize(SubReg)); in shiftSubReg()
285 for (auto [SubReg, SRI] : SubRegs) { in getMinSizeReg()
286 unsigned SubRegOffset = TRI->getSubRegIdxOffset(SubReg); in getMinSizeReg()
287 unsigned SubRegEnd = SubRegOffset + TRI->getSubRegIdxSize(SubReg); in getMinSizeReg()
297 CoverSubreg = SubReg; in getMinSizeReg()
308 for (auto [SubReg, SRI] : SubRegs) in getMinSizeReg()
309 MaxAlign = std::max(MaxAlign, TRI->getSubRegAlignmentNumBits(RC, SubReg)); in getMinSizeReg()
[all …]
H A DSIRegisterInfo.h347 unsigned SubReg,
401 MachineInstr *findReachingDef(Register Reg, unsigned SubReg,
423 unsigned getChannelFromSubReg(unsigned SubReg) const { in getChannelFromSubReg() argument
424 return SubReg ? (getSubRegIdxOffset(SubReg) + 31) / 32 : 0; in getChannelFromSubReg()
428 unsigned getNumChannelsFromSubReg(unsigned SubReg) const { in getNumChannelsFromSubReg() argument
429 return getNumCoveredRegs(getSubRegIndexLaneMask(SubReg)); in getNumChannelsFromSubReg()
486 unsigned SubReg) const;
H A DSIShrinkInstructions.cpp50 Register Reg, unsigned SubReg) const;
52 unsigned SubReg) const;
54 unsigned SubReg) const;
609 unsigned SubReg) const { in instAccessReg()
618 LaneBitmask Overlap = TRI->getSubRegIndexLaneMask(SubReg) & in instAccessReg()
628 unsigned SubReg) const { in instReadsReg()
629 return instAccessReg(MI->uses(), Reg, SubReg); in instReadsReg()
633 unsigned SubReg) const { in instModifiesReg()
634 return instAccessReg(MI->defs(), Reg, SubReg); in instModifiesReg()
789 .addDef(X1.Reg, 0, X1.SubReg) in matchSwap()
[all …]
H A DSIPreAllocateWWMRegs.cpp137 const unsigned SubReg = MO.getSubReg(); in rewriteRegs() local
138 if (SubReg != 0) { in rewriteRegs()
139 PhysReg = TRI->getSubReg(PhysReg, SubReg); in rewriteRegs()
H A DSIRegisterInfo.cpp1787 Register SubReg = e == 1 in buildSpillLoadStore() local
1850 SubReg = Register(getSubReg(ValueReg, in buildSpillLoadStore()
1856 unsigned FinalReg = SubReg; in buildSpillLoadStore()
1869 .addReg(SubReg, getKillRegState(IsKill)); in buildSpillLoadStore()
1876 SubReg = TmpIntermediateVGPR; in buildSpillLoadStore()
1892 .addReg(SubReg, getDefRegState(!IsStore) | getKillRegState(IsKill)); in buildSpillLoadStore()
1962 MI->readsRegister(SubReg, this)) { in buildSpillLoadStore()
1963 MIB.addReg(SubReg, RegState::Implicit); in buildSpillLoadStore()
2059 Register SubReg = in spillSGPR() local
2074 .addReg(SubReg, getKillRegState(UseKill)) in spillSGPR()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonGenPredicate.cpp57 return OS << printReg(PR.Reg.Reg, &PR.TRI, PR.Reg.SubReg); in operator <<()
201 LLVM_DEBUG(dbgs() << __func__ << ": " << printReg(Reg.Reg, TRI, Reg.SubReg) in processPredicateGPR()
207 LLVM_DEBUG(dbgs() << "Dead reg: " << printReg(Reg.Reg, TRI, Reg.SubReg) in processPredicateGPR()
252 .addReg(Reg.Reg, 0, Reg.SubReg); in getPredRegFor()
355 if (Reg.SubReg && Reg.SubReg != Hexagon::isub_lo) in convertToPredForm()
405 MIB.addReg(Pred.Reg, 0, Pred.SubReg); in convertToPredForm()
414 .addReg(NewPR.Reg, 0, NewPR.SubReg); in convertToPredForm()
459 assert(!DR.SubReg && !SR.SubReg && "Unexpected subregister"); in eliminatePredCopies()
/freebsd/contrib/llvm-project/llvm/utils/TableGen/Common/
H A DCodeGenRegisters.cpp299 for (const auto &[SRI, SubReg] : Map) in computeSubRegs()
300 if (Orphans.erase(SubReg)) in computeSubRegs()
301 SubRegs[RegBank.getCompositeSubRegIndex(Idx, SRI)] = SubReg; in computeSubRegs()
305 for (auto &[SRI, SubReg] : SubRegs) { in computeSubRegs()
306 if (SubReg == this) { in computeSubRegs()
320 SubReg2Idx.try_emplace(SubReg, SRI).first; in computeSubRegs()
328 SubReg->getName() + " available as " + in computeSubRegs()
412 for (auto [SRI, SubReg] : SubRegs) in computeSecondarySubRegs()
413 SubRegQueue.emplace(SRI, SubReg); in computeSecondarySubRegs()
419 auto [SubRegIdx, SubReg] = SubRegQueue.front(); in computeSecondarySubRegs()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/MC/
H A DMCRegisterInfo.cpp131 MCRegister SubReg) const { in getSubRegIndex()
132 assert(SubReg && SubReg < getNumRegs() && "This is not a register"); in getSubRegIndex()
137 if (Sub == SubReg) in getSubRegIndex()
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DMachineInstrBuilder.h101 unsigned SubReg = 0) const {
111 SubReg,
120 unsigned SubReg = 0) const {
121 return addReg(RegNo, Flags | RegState::Define, SubReg);
127 unsigned SubReg = 0) const {
130 return addReg(RegNo, Flags, SubReg);
H A DLivePhysRegs.h86 for (MCPhysReg SubReg : TRI->subregs_inclusive(Reg)) in addReg() local
87 LiveRegs.insert(SubReg); in addReg()
H A DTargetInstrInfo.h528 unsigned SubReg; member
530 RegSubRegPair(Register Reg = Register(), unsigned SubReg = 0)
531 : Reg(Reg), SubReg(SubReg) {} in Reg()
534 return Reg == P.Reg && SubReg == P.SubReg;
547 RegSubRegPairAndIdx(Register Reg = Register(), unsigned SubReg = 0,
549 : RegSubRegPair(Reg, SubReg), SubIdx(SubIdx) {} in RegSubRegPair()
2375 std::make_pair(Val.Reg, Val.SubReg));
H A DTargetRegisterInfo.h1169 unsigned SubReg, in shouldCoalesce() argument
1270 unsigned SubReg = 0; variable
1290 unsigned getSubReg() const { return SubReg; } in getSubReg()
1301 SubReg = *Idx++;
1302 if (!SubReg)
/freebsd/contrib/llvm-project/llvm/lib/Target/M68k/
H A DM68kInstrInfo.cpp389 unsigned SubReg = RI.getSubReg(Reg, M68k::MxSubRegIndex8Lo); in ExpandMOVI() local
390 assert(SubReg && "No viable SUB register available"); in ExpandMOVI()
393 BuildMI(MBB, MIB.getInstr(), DL, get(M68k::NOT8d), SubReg).addReg(SubReg); in ExpandMOVI()
418 unsigned SubReg = RI.getSubReg(Reg, M68k::MxSubRegIndex16Lo); in ExpandMOVI() local
419 assert(SubReg && "No viable SUB register available"); in ExpandMOVI()
422 MIB->getOperand(0).setReg(SubReg); in ExpandMOVI()

1234