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

References

lib/CodeGen/ShrinkWrap.cpp
  192     Restore = nullptr;
  211   bool ArePointsInteresting() const { return Save != Entry && Save && Restore; }
  339   if (!Restore)
  340     Restore = &MBB;
  346     Restore = MPDT->findNearestCommonDominator(Restore, &MBB);
  346     Restore = MPDT->findNearestCommonDominator(Restore, &MBB);
  348     Restore = nullptr; // Abort, we can't find a restore point in this case.
  352   if (Restore == &MBB) {
  358         Restore = nullptr; // Abort, we can't find a restore point in this case.
  363       Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT);
  363       Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT);
  363       Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT);
  368   if (!Restore) {
  383   while (Save && Restore &&
  384          (!(SaveDominatesRestore = MDT->dominates(Save, Restore)) ||
  385           !(RestorePostDominatesSave = MPDT->dominates(Restore, Save)) ||
  403           MLI->getLoopFor(Save) || MLI->getLoopFor(Restore))) {
  406       Save = MDT->findNearestCommonDominator(Save, Restore);
  411       Restore = MPDT->findNearestCommonDominator(Restore, Save);
  411       Restore = MPDT->findNearestCommonDominator(Restore, Save);
  414     if (Save && Restore &&
  415         (MLI->getLoopFor(Save) || MLI->getLoopFor(Restore))) {
  416       if (MLI->getLoopDepth(Save) > MLI->getLoopDepth(Restore)) {
  426         MLI->getLoopFor(Restore)->getExitingBlocks(ExitBlocks);
  429         MachineBasicBlock *IPdom = Restore;
  438         if (IPdom && MLI->getLoopDepth(IPdom) < MLI->getLoopDepth(Restore))
  439           Restore = IPdom;
  441           Restore = nullptr;
  533     assert(!Save && !Restore && "We miss a shrink-wrap opportunity?!");
  546                       << "\nRestore: " << Restore->getNumber() << ' '
  547                       << Restore->getName() << ' '
  548                       << MBFI->getBlockFreq(Restore).getFrequency() << '\n');
  552          EntryFreq >= MBFI->getBlockFreq(Restore).getFrequency()) &&
  554          TFI->canUseAsEpilogue(*Restore)))
  566       Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT);
  566       Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT);
  566       Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT);
  567       if (!Restore)
  569       NewBB = Restore;
  572   } while (Save && Restore);
  581                     << "\nRestore: " << Restore->getNumber() << ' '
  582                     << Restore->getName() << '\n');
  586   MFI.setRestorePoint(Restore);