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

References

lib/CodeGen/RegisterCoalescer.cpp
 1756   if (!CP.setRegisters(CopyMI)) {
 1761   if (CP.getNewRC()) {
 1762     auto SrcRC = MRI->getRegClass(CP.getSrcReg());
 1763     auto DstRC = MRI->getRegClass(CP.getDstReg());
 1764     unsigned SrcIdx = CP.getSrcIdx();
 1765     unsigned DstIdx = CP.getDstIdx();
 1766     if (CP.isFlipped()) {
 1771                              CP.getNewRC(), *LIS)) {
 1780   if (!CP.isPhys() && CopyMI->allDefsAreDead()) {
 1788   if (!CP.isPhys()) {
 1801   if (CP.getSrcReg() == CP.getDstReg()) {
 1801   if (CP.getSrcReg() == CP.getDstReg()) {
 1802     LiveInterval &LI = LIS->getInterval(CP.getSrcReg());
 1827   if (CP.isPhys()) {
 1829                       << printReg(CP.getSrcReg(), TRI) << " with "
 1830                       << printReg(CP.getDstReg(), TRI, CP.getSrcIdx()) << '\n');
 1830                       << printReg(CP.getDstReg(), TRI, CP.getSrcIdx()) << '\n');
 1831     if (!canJoinPhys(CP)) {
 1835       if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy))
 1843     if (!CP.isPartial() && LIS->getInterval(CP.getSrcReg()).size() >
 1843     if (!CP.isPartial() && LIS->getInterval(CP.getSrcReg()).size() >
 1844                            LIS->getInterval(CP.getDstReg()).size())
 1845       CP.flip();
 1849              << TRI->getRegClassName(CP.getNewRC()) << " with ";
 1850       if (CP.getDstIdx() && CP.getSrcIdx())
 1850       if (CP.getDstIdx() && CP.getSrcIdx())
 1851         dbgs() << printReg(CP.getDstReg()) << " in "
 1852                << TRI->getSubRegIndexName(CP.getDstIdx()) << " and "
 1853                << printReg(CP.getSrcReg()) << " in "
 1854                << TRI->getSubRegIndexName(CP.getSrcIdx()) << '\n';
 1856         dbgs() << printReg(CP.getSrcReg(), TRI) << " in "
 1857                << printReg(CP.getDstReg(), TRI, CP.getSrcIdx()) << '\n';
 1857                << printReg(CP.getDstReg(), TRI, CP.getSrcIdx()) << '\n';
 1868   if (!joinIntervals(CP)) {
 1874     if (reMaterializeTrivialDef(CP, CopyMI, IsDefCopy))
 1879     if (!CP.isPartial() && !CP.isPhys()) {
 1879     if (!CP.isPartial() && !CP.isPhys()) {
 1880       bool Changed = adjustCopiesBackFrom(CP, CopyMI);
 1883         std::tie(Changed, Shrink) = removeCopyByCommutingDef(CP, CopyMI);
 1887           unsigned DstReg = CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg();
 1887           unsigned DstReg = CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg();
 1887           unsigned DstReg = CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg();
 1899     if (!CP.isPartial() && !CP.isPhys())
 1899     if (!CP.isPartial() && !CP.isPhys())
 1900       if (removePartialRedundancy(CP, *CopyMI))
 1911   if (CP.isCrossClass()) {
 1913     MRI->setRegClass(CP.getDstReg(), CP.getNewRC());
 1913     MRI->setRegClass(CP.getDstReg(), CP.getNewRC());
 1918   if (!CP.isPhys() && RegClassInfo.isProperSubClass(CP.getNewRC()))
 1918   if (!CP.isPhys() && RegClassInfo.isProperSubClass(CP.getNewRC()))
 1919     InflateRegs.push_back(CP.getDstReg());
 1928   if (CP.getDstIdx())
 1929     updateRegDefsUses(CP.getDstReg(), CP.getDstReg(), CP.getDstIdx());
 1929     updateRegDefsUses(CP.getDstReg(), CP.getDstReg(), CP.getDstIdx());
 1929     updateRegDefsUses(CP.getDstReg(), CP.getDstReg(), CP.getDstIdx());
 1930   updateRegDefsUses(CP.getSrcReg(), CP.getDstReg(), CP.getSrcIdx());
 1930   updateRegDefsUses(CP.getSrcReg(), CP.getDstReg(), CP.getSrcIdx());
 1930   updateRegDefsUses(CP.getSrcReg(), CP.getDstReg(), CP.getSrcIdx());
 1934     LiveInterval &LI = LIS->getInterval(CP.getDstReg());
 1948   if (ToBeUpdated.count(CP.getSrcReg()))
 1952     LiveInterval &LI = LIS->getInterval(CP.getDstReg());
 1958   LIS->removeInterval(CP.getSrcReg());
 1961   TRI->updateRegAllocHint(CP.getSrcReg(), CP.getDstReg(), *MF);
 1961   TRI->updateRegAllocHint(CP.getSrcReg(), CP.getDstReg(), *MF);
 1964     dbgs() << "\tSuccess: " << printReg(CP.getSrcReg(), TRI, CP.getSrcIdx())
 1964     dbgs() << "\tSuccess: " << printReg(CP.getSrcReg(), TRI, CP.getSrcIdx())
 1965            << " -> " << printReg(CP.getDstReg(), TRI, CP.getDstIdx()) << '\n';
 1965            << " -> " << printReg(CP.getDstReg(), TRI, CP.getDstIdx()) << '\n';
 1967     if (CP.isPhys())
 1968       dbgs() << printReg(CP.getDstReg(), TRI);
 1970       dbgs() << LIS->getInterval(CP.getDstReg());