Lines Matching full:pressure
1 //===-- RegisterPressure.cpp - Dynamic Register Pressure ------------------===//
11 // MachineInstr level register pressure.
26 /// Increase pressure for each pressure set provided by TargetRegisterInfo.
39 /// Decrease pressure for each pressure set provided by TargetRegisterInfo.
43 assert(CurrSetPressure[*PSet] >= Weight && "register pressure underflow");
48 /// Directly increase pressure only within this RegisterPressure result.
64 /// Directly decrease pressure only within this RegisterPressure result.
93 dbgs() << "Max Pressure: ";
107 dbgs() << "Curr Pressure: ";
114 /// Increase the current pressure as impacted by these registers and bump
132 /// Simply decrease the current pressure as impacted by these registers.
148 /// Clear the result so it can be used for another round of pressure tracking.
156 /// Clear the result so it can be used for another round of pressure tracking.
165 /// We happen to need the SlotIndex for the next top for pressure update.
205 /// TODO: Add support for pressure without LiveIntervals.
244 /// Does this pressure result have a valid top position and live ins.
252 /// Does this pressure result have a valid bottom position and live outs.
277 assert(P.LiveInRegs.empty() && "inconsistent max pressure result");
295 assert(P.LiveOutRegs.empty() && "inconsistent max pressure result");
323 /// can never drop below this pressure.
410 /// Add Reg to the live in set and increase max pressure.
412 assert(!LiveRegs.contains(Reg) && "avoid bumping max pressure twice");
421 /// Add Reg to the live out set and increase max pressure.
423 assert(!LiveRegs.contains(Reg) && "avoid bumping max pressure twice");
466 // Boost pressure for all dead defs together.
562 // Boost pressure for all dead defs together.
573 /// Find the max change in excess pressure across all sets.
611 /// Find the max change in max pressure that either surpasses a critical PSet
616 /// RegPressureTracker API change to work with pressure differences.
659 /// pressure. Unlike the advance/recede pressure tracking interface, this does
662 /// This is intended for speculative queries. It leaves pressure inconsistent
667 // Account for register pressure similar to RegPressureTracker::recede().
671 // Boost max pressure for all dead defs together.
690 /// Consider the pressure increase caused by traversing this instruction
691 /// bottom-up. Find the pressure set with the most change beyond its pressure
692 /// limit based on the tracker's current pressure, and return the change in
693 /// number of register units of that pressure set introduced by this
705 // Snapshot Pressure.
707 // summarize the pressure effect so we don't need to snapshot at all.
718 Delta.CurrentMax.UnitIncrease >= 0 && "cannot decrease max pressure");
744 /// pressure. Unlike the advance/recede pressure tracking interface, this does
747 /// This is intended for speculative queries. It leaves pressure inconsistent
752 // Account for register pressure similar to RegPressureTracker::recede().
783 // Boost pressure for all dead defs together.
788 /// Consider the pressure increase caused by traversing this instruction
789 /// top-down. Find the register class with the most change in its pressure limit
790 /// based on the tracker's current pressure, and return the number of excess
791 /// register units of that pressure set introduced by this instruction.
798 // Snapshot Pressure.
809 Delta.CurrentMax.UnitIncrease >= 0 && "cannot decrease max pressure");
816 /// Get the pressure of each PSet after traversing this instruction bottom-up.
821 // Snapshot pressure.
827 // Current pressure becomes the result. Restore current pressure.
832 /// Get the pressure of each PSet after traversing this instruction top-down.
837 // Snapshot pressure.
843 // Current pressure becomes the result. Restore current pressure.