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

References

include/llvm/CodeGen/LiveIntervals.h
  427         removeRegUnit(*Units);
include/llvm/CodeGen/LivePhysRegs.h
   84       LiveRegs.insert(*SubRegs);
include/llvm/CodeGen/LiveRegUnits.h
   89       Units.set(*Unit);
  105       Units.reset(*Unit);
  119       if (Units.test(*Unit))
include/llvm/CodeGen/TargetRegisterInfo.h
  389       if (*RUA == *RUB) return true;
  389       if (*RUA == *RUB) return true;
  390       if (*RUA < *RUB) ++RUA;
  390       if (*RUA < *RUB) ++RUA;
  399       if (*Units == RegUnit)
include/llvm/MC/MCRegisterInfo.h
  504     return *SRIter;
  541     if (*I == RegB)
  605     return std::make_pair(*RUIter, *MaskListIter);
  678       for (RRI = MCRegUnitRootIterator(*RI, MCRI); RRI.isValid(); ++RRI) {
  680           if (!(!IncludeSelf && Reg == *SI))
  691     return *SI;
  707       RRI = MCRegUnitRootIterator(*RI, MCRI);
  715     while (!IncludeSelf && isValid() && *SI == Reg);
lib/CodeGen/AggressiveAntiDepBreaker.cpp
  258         PassthruRegs.insert(*SubRegs);
  335       unsigned SubregReg = *SubRegs;
lib/CodeGen/AsmPrinter/DwarfExpression.cpp
  120     Reg = TRI.getDwarfRegNum(*SR, false);
  122       unsigned Idx = TRI.getSubRegIndex(*SR, MachineReg);
  145     unsigned Idx = TRI.getSubRegIndex(MachineReg, *SR);
  148     Reg = TRI.getDwarfRegNum(*SR, false);
lib/CodeGen/BranchFolding.cpp
 1957             Uses.erase(*SubRegs); // Use sub-registers to be conservative
lib/CodeGen/BreakFalseDeps.cpp
  117     for (MCRegUnitRootIterator Root(*Unit, TRI); Root.isValid(); ++Root) {
lib/CodeGen/CriticalAntiDepBreaker.cpp
  234         KeepRegs.set(*SubRegs);
  238         KeepRegs.set(*SuperRegs);
  246           KeepRegs.set(*SubRegs);
  290         unsigned SubregReg = *SRI;
  300         Classes[*SR] = reinterpret_cast<TargetRegisterClass *>(-1);
lib/CodeGen/DeadMachineInstructionElim.cpp
  150               LivePhysRegs.reset(*SR);
lib/CodeGen/EarlyIfConversion.cpp
  267         ClobberedRegUnits.set(*Units);
  388           LiveRegUnits.erase(*Units);
  397         if (ClobberedRegUnits.test(*Units))
  398           LiveRegUnits.insert(*Units);
lib/CodeGen/IfConversion.cpp
 1515         if (!LiveBeforeMI.count(*S))
 1958             ExtUses.insert(*SubRegs);
 1966             RedefsByFalse.insert(*SubRegs);
lib/CodeGen/InterferenceCache.cpp
  101     RegUnits[i].VirtTag = LIUArray[*Units].getTag();
  118     RegUnits.push_back(LIUArray[*Units]);
  119     RegUnits.back().Fixed = &LIS->getRegUnit(*Units);
  129     if (LIUArray[*Units].changedSince(RegUnits[i].VirtTag))
lib/CodeGen/LiveIntervals.cpp
  277       unsigned Reg = *Super;
  296         unsigned Reg = *Super;
  329         unsigned Unit = *Units;
  703       const LiveRange &RURange = getRegUnit(*Unit);
 1011         if (LiveRange *LR = getRegUnitLI(*Units))
 1012           updateRange(*LR, *Units, LaneBitmask::getNone());
 1628     if (LiveRange *LR = getCachedRegUnit(*Unit))
lib/CodeGen/LivePhysRegs.cpp
  268       if (LiveRegs.contains(*SReg) && !MRI.isReserved(*SReg)) {
  268       if (LiveRegs.contains(*SReg) && !MRI.isReserved(*SReg)) {
lib/CodeGen/LiveRegMatrix.cpp
   96       if (Func(*Units, VRegInterval))
  139     if (!Matrix[*Unit].empty())
  218     if (query(LR, *Units).checkInterference())
lib/CodeGen/LiveVariables.cpp
  198     unsigned SubReg = *SubRegs;
  222         PartDefRegs.insert(*SubRegs);
  252         unsigned SubReg = *SubRegs;
  264           Processed.insert(*SS);
  276     PhysRegUse[*SubRegs] = &MI;
  291     unsigned SubReg = *SubRegs;
  340     unsigned SubReg = *SubRegs;
  355         PartUses.insert(*SS);
  371       unsigned SubReg = *SubRegs;
  392           PhysRegUse[*SS] = LastRefOrPartRef;
  395         PartUses.erase(*SS);
  437       if ((PhysRegDef[*SR] || PhysRegUse[*SR]) && MO.clobbersPhysReg(*SR))
  437       if ((PhysRegDef[*SR] || PhysRegUse[*SR]) && MO.clobbersPhysReg(*SR))
  437       if ((PhysRegDef[*SR] || PhysRegUse[*SR]) && MO.clobbersPhysReg(*SR))
  438         Super = *SR;
  450       Live.insert(*SubRegs);
  453       unsigned SubReg = *SubRegs;
  465           Live.insert(*SS);
  475     unsigned SubReg = *SubRegs;
  493       unsigned SubReg = *SubRegs;
lib/CodeGen/MachineCopyPropagation.cpp
   93         auto CI = Copies.find(*RUI);
  103       auto I = Copies.find(*RUI);
  127       Copies[*RUI] = {MI, {}, true};
  132       auto I = Copies.insert({*RUI, {nullptr, {}, false}});
  159         findCopyForUnit(*RUI, TRI, /*MustBeAvailable=*/true);
  246     if (MachineInstr *Copy = Tracker.findCopyForUnit(*RUI, *TRI)) {
lib/CodeGen/MachineFrameInfo.cpp
  131       BV.reset(*S);
lib/CodeGen/MachineInstrBundle.cpp
  199           unsigned SubReg = *SubRegs;
lib/CodeGen/MachinePipeliner.cpp
 1561             Uses.insert(*Units);
 1574             if (!Uses.count(*Units))
 1575               LiveOutRegs.push_back(RegisterMaskPair(*Units,
lib/CodeGen/MachineRegisterInfo.cpp
  663       unsigned Reg = *Super;
lib/CodeGen/MachineSink.cpp
 1170       SuccBB->removeLiveIn(*S);
 1217     RegUnits.insert(*RI);
lib/CodeGen/MachineTraceMetrics.cpp
  726       SparseSet<LiveRegUnit>::iterator I = RegUnits.find(*Units);
  738       RegUnits.erase(*Units);
  744       LiveRegUnit &LRU = RegUnits[*Units];
  915       SparseSet<LiveRegUnit>::iterator I = RegUnits.find(*Units);
  935       LiveRegUnit &LRU = RegUnits[*Units];
lib/CodeGen/MachineVerifier.cpp
  127           RV.push_back(*SubRegs);
  806         regsLive.insert(*SubRegs);
  815       regsLive.insert(*SubRegs);
 1961           if (MRI->isReservedRegUnit(*Units))
 1963           if (const LiveRange *LR = LiveInts->getCachedRegUnit(*Units))
 1964             checkLivenessAtUse(MO, MONum, UseIdx, *LR, *Units);
 2010             if (regsLive.count(*SubRegs)) {
 2030               if (*SubRegs == Reg) {
lib/CodeGen/ReachingDefAnalysis.cpp
   46         LiveRegs[*Unit] = -1;
   47         MBBReachingDefs[MBBNumber][*Unit].push_back(LiveRegs[*Unit]);
   47         MBBReachingDefs[MBBNumber][*Unit].push_back(LiveRegs[*Unit]);
  116       LiveRegs[*Unit] = CurInstr;
  117       MBBReachingDefs[MBBNumber][*Unit].push_back(CurInstr);
  182     for (int Def : MBBReachingDefs[MBBNumber][*Unit]) {
lib/CodeGen/RegAllocBasic.cpp
  212     LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, *Units);
lib/CodeGen/RegAllocFast.cpp
  144         UsedInInstr.insert(*Units);
  150         if (UsedInInstr.count(*Units))
lib/CodeGen/RegAllocGreedy.cpp
  819       LiveIntervalUnion::Query subQ(VirtReg, Matrix->getLiveUnions()[*Units]);
  894     LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, *Units);
  976     LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, *Units);
 1063     LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, *Units);
 2168     if (!Matrix->query(const_cast<LiveInterval&>(SA->getParent()), *Units)
 2180       Matrix->getLiveUnions()[*Units] .find(StartIdx);
 2203     const LiveRange &LR = LIS->getRegUnit(*Units);
 2535     LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, *Units);
lib/CodeGen/RegAllocPBQP.cpp
  625         if (VRegLI.overlaps(LIS.getRegUnit(*Units))) {
lib/CodeGen/RegUsageInfoCollector.cpp
  213         SavedRegs.set(*SR);
lib/CodeGen/RegisterCoalescer.cpp
 1455       if (LiveRange *LR = LIS->getCachedRegUnit(*Units))
 1470       if (LiveRange *LR = LIS->getCachedRegUnit(*Units))
 1998       for (MCRegUnitRootIterator RI(*UI, TRI); RI.isValid(); ++RI) {
 2002       if (RHS.overlaps(LIS->getRegUnit(*UI))) {
 2003         LLVM_DEBUG(dbgs() << "\t\tInterference: " << printRegUnit(*UI, TRI)
 2080       LiveRange &LR = LIS->getRegUnit(*UI);
lib/CodeGen/RegisterPressure.cpp
  526         addRegLanes(RegUnits, RegisterMaskPair(*Units, LaneBitmask::getAll()));
  561         addRegLanes(RegUnits, RegisterMaskPair(*Units, LaneBitmask::getAll()));
lib/CodeGen/RegisterScavenging.cpp
  101     BV.set(*RUI);
  106     BV.reset(*RUI);
  224           if (isRegUsed(*SubRegs)) {
  230           if (isRegUsed(*SR)) {
lib/CodeGen/ScheduleDAGInstrs.cpp
  334       if (Uses.contains(*SubReg))
  335         Uses.eraseAll(*SubReg);
  337         Defs.eraseAll(*SubReg);
lib/CodeGen/StackMaps.cpp
   95     RegNum = TRI->getDwarfRegNum(*SR, false);
lib/CodeGen/TargetRegisterInfo.cpp
   61     RegisterSet.set(*AI);
   72       if (!RegisterSet[*SR] && !is_contained(Exceptions, Reg)) {
   73         dbgs() << "Error: Super register " << printReg(*SR, this)
   81       Checked.set(*SR);
lib/CodeGen/VirtRegMap.cpp
  476     const LiveRange &UnitRange = LIS->getRegUnit(*Unit);
lib/MC/MCRegisterInfo.cpp
   27     if (RC->contains(*Supers) && Reg == getSubReg(*Supers, SubIdx))
   27     if (RC->contains(*Supers) && Reg == getSubReg(*Supers, SubIdx))
   28       return *Supers;
   40       return *Subs;
   51     if (*Subs == SubReg)
lib/MCA/HardwareUnits/RegisterFile.cpp
  105         RegisterRenamingInfo &OtherEntry = RegisterMappings[*I].second;
  108              MRI.isSuperRegister(*I, OtherEntry.RenameAs))) {
  202       ZeroRegisters.setBit(*I);
  206       ZeroRegisters.clearBit(*I);
  216       RegisterMappings[*I].first = Write;
  217       RegisterMappings[*I].second.AliasRegID = 0U;
  232       RegisterMappings[*I].first = Write;
  233       RegisterMappings[*I].second.AliasRegID = 0U;
  237       ZeroRegisters.setBit(*I);
  239       ZeroRegisters.clearBit(*I);
  276     WriteRef &OtherWR = RegisterMappings[*I].first;
  285     WriteRef &OtherWR = RegisterMappings[*I].first;
  344     RegisterMappings[*I].second.AliasRegID = AliasedReg;
  374     const WriteRef &WR = RegisterMappings[*I].first;
lib/Target/AArch64/AArch64RegisterInfo.cpp
  164         UpdatedMask[*SubReg / 32] |= 1u << (*SubReg % 32);
  164         UpdatedMask[*SubReg / 32] |= 1u << (*SubReg % 32);
lib/Target/AMDGPU/GCNHazardRecognizer.cpp
  471     BV.set(*RUI);
lib/Target/AMDGPU/SIRegisterInfo.cpp
   43     const int *PSets = getRegUnitPressureSets(*U);
 1895       LiveRange &LR = LIS->getRegUnit(*Units);
lib/Target/AMDGPU/SIWholeQuadMode.cpp
  286         LiveRange &LR = LIS->getRegUnit(*RegUnit);
  584   LiveRange &LR = LIS->getRegUnit(*MCRegUnitIterator(AMDGPU::SCC, TRI));
  936   LIS->removeRegUnit(*MCRegUnitIterator(AMDGPU::SCC, TRI));
lib/Target/ARM/ARMAsmPrinter.cpp
  283           if (!ARM::DPRRegClass.contains(*SR))
  285           bool Lane0 = TRI->getSubReg(*SR, ARM::ssub_0) == Reg;
  286           O << ARMInstPrinter::getRegisterName(*SR) << (Lane0 ? "[0]" : "[1]");
lib/Target/ARM/ARMBaseRegisterInfo.cpp
  213       if (Reserved.test(*SI))
  294     if (ARM::GPRPairRegClass.contains(*Supers))
  295       return RI->getSubReg(*Supers, Odd ? ARM::gsub_1 : ARM::gsub_0);
lib/Target/ARM/Thumb2ITBlockPass.cpp
  103         UsesDefs.insert(*Subreg);
lib/Target/BPF/BPFMIChecking.cpp
  150        if (std::find(search_begin, search_end, *SR) == search_end)
lib/Target/Hexagon/HexagonAsmPrinter.cpp
   70   unsigned Pair = *SR;
lib/Target/Hexagon/HexagonBlockRanges.cpp
  276       SRs.insert({*I, 0});
lib/Target/Hexagon/HexagonCopyToCombine.cpp
  448             LastDef[*SubRegs] = &MI;
lib/Target/Hexagon/HexagonFrameLowering.cpp
  253         if (*SubRegs > RegNo)
  254           RegNo = *SubRegs;
  256         if (!RegNo || *SubRegs < RegNo)
  257           RegNo = *SubRegs;
  312             if (CSR[*S])
  438       CSR[*S] = true;
 1444       SRegs[*SR] = true;
 1456       SRegs[*SR] = false;
 1471       TmpSup[*SR] = true;
 1476       if (!Reserved[*SR])
 1495       if (!SRegs[*SR])
lib/Target/Hexagon/HexagonGenMux.cpp
  148     SRs[*I] = true;
  353       if (LPR.contains(*S))
lib/Target/Hexagon/HexagonInstrInfo.cpp
 2108           if (RegB == *SubRegs)
 2113           if (RegA == *SubRegs)
 4106         int Idx = DefMI.findRegisterDefOperandIdx(*SR, false, false, &HRI);
 4117         int Idx = UseMI.findRegisterUseOperandIdx(*SR, false, &HRI);
lib/Target/Hexagon/RDFLiveness.cpp
  896         Live.reset(*SR);
  914         Live.set(*SR);
lib/Target/Hexagon/RDFRegisters.cpp
   91         PU.set(*U);
  327         Regs.set(*S);
lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
   79     unsigned CurrentSubReg = *SubRegIt;
lib/Target/PowerPC/PPCVSXFMAMutate.cpp
  320             unsigned Unit = *Units;
lib/Target/SystemZ/SystemZInstrInfo.cpp
 1013       LiveRange &CCLiveRange = LIS->getRegUnit(*CCUnit);
lib/Target/SystemZ/SystemZRegisterInfo.cpp
  392           if (NewRC->contains(*SI)) {
  393             PhysClobbered.set(*SI);
lib/Target/X86/X86ISelLowering.cpp
 2845         RegMask[*SubRegs / 32] &= ~(1u << (*SubRegs % 32));
 2845         RegMask[*SubRegs / 32] &= ~(1u << (*SubRegs % 32));
 4076         RegMask[*SubRegs / 32] &= ~(1u << (*SubRegs % 32));
 4076         RegMask[*SubRegs / 32] &= ~(1u << (*SubRegs % 32));
lib/Target/X86/X86RegisterInfo.cpp
  529     Reserved.set(*I);
  537     Reserved.set(*I);
  543       Reserved.set(*I);
  558       Reserved.set(*I);