Lines Matching full:pressure
1 //===-- RegisterPressure.cpp - Dynamic Register Pressure ------------------===//
11 // MachineInstr level register pressure.
25 /// Increase pressure for each pressure set provided by TargetRegisterInfo.
39 /// Decrease pressure for each pressure set provided by TargetRegisterInfo.
50 assert(CurrSetPressure[*PSetI] >= Weight && "register pressure underflow"); in decreaseSetPressure()
71 dbgs() << "Max Pressure: "; in dump()
94 dbgs() << "Curr Pressure: "; in dump()
133 /// Clear the result so it can be used for another round of pressure tracking.
141 /// Clear the result so it can be used for another round of pressure tracking.
150 /// We happen to need the SlotIndex for the next top for pressure update.
219 /// TODO: Add support for pressure without LiveIntervals.
251 /// Does this pressure result have a valid top position and live ins.
259 /// Does this pressure result have a valid bottom position and live outs.
284 assert(P.LiveInRegs.empty() && "inconsistent max pressure result"); in closeTop()
296 assert(P.LiveOutRegs.empty() && "inconsistent max pressure result"); in closeBottom()
317 /// can never drop below this pressure.
629 /// Add a change in pressure to the pressure diff of a given instruction.
635 // Find an existing entry in the pressure diff for this PSet. in addPressureChange()
641 // If all pressure sets are more constrained, skip the remaining PSets. in addPressureChange()
650 // Update the units for this pressure set. in addPressureChange()
722 /// registers that are both defined and used by the instruction. If a pressure
723 /// difference pointer is provided record the changes is pressure caused by this
729 // Boost pressure for all dead defs together. in recede()
743 // Retroactively model effects on pressure of the live out lanes. in recede()
896 // Boost pressure for all dead defs together. in advance()
916 /// Find the max change in excess pressure across all sets.
950 /// Find the max change in max pressure that either surpasses a critical PSet
955 /// RegPressureTracker API change to work with pressure differences.
995 /// pressure. Unlike the advance/recede pressure tracking interface, this does
998 /// This is intended for speculative queries. It leaves pressure inconsistent
1007 // Account for register pressure similar to RegPressureTracker::recede(). in bumpUpwardPressure()
1016 // Boost max pressure for all dead defs together. in bumpUpwardPressure()
1038 /// Consider the pressure increase caused by traversing this instruction
1039 /// bottom-up. Find the pressure set with the most change beyond its pressure
1040 /// limit based on the tracker's current pressure, and return the change in
1041 /// number of register units of that pressure set introduced by this
1047 /// bumpUpwardPressure to recompute the pressure sets based on current
1056 // Snapshot Pressure. in getMaxUpwardPressureDelta()
1058 // summarize the pressure effect so we don't need to snapshot at all. in getMaxUpwardPressureDelta()
1069 Delta.CurrentMax.getUnitInc() >= 0 && "cannot decrease max pressure"); in getMaxUpwardPressureDelta()
1109 /// This is the fast version of querying register pressure that does not
1114 /// @param CriticalPSets Are the pressure sets that are known to exceed some
1117 /// @param MaxPressureLimit Is the max pressure within the region, not
1143 // Check if current pressure has exceeded the limit. in getUpwardPressureDelta()
1155 // Check if max pressure has exceeded a critical pressure set max. in getUpwardPressureDelta()
1170 // Check if max pressure has exceeded the current max. in getUpwardPressureDelta()
1234 /// pressure. Unlike the advance/recede pressure tracking interface, this does
1237 /// This is intended for speculative queries. It leaves pressure inconsistent
1246 // Account for register pressure similar to RegPressureTracker::recede(). in bumpDownwardPressure()
1283 // Boost pressure for all dead defs together. in bumpDownwardPressure()
1287 /// Consider the pressure increase caused by traversing this instruction
1288 /// top-down. Find the register class with the most change in its pressure limit
1289 /// based on the tracker's current pressure, and return the number of excess
1290 /// register units of that pressure set introduced by this instruction.
1295 /// bumpDownwardPressure to recompute the pressure sets based on current
1296 /// liveness. We don't yet have a fast version of downward pressure tracking
1302 // Snapshot Pressure. in getMaxDownwardPressureDelta()
1313 Delta.CurrentMax.getUnitInc() >= 0 && "cannot decrease max pressure"); in getMaxDownwardPressureDelta()
1320 /// Get the pressure of each PSet after traversing this instruction bottom-up.
1325 // Snapshot pressure. in getUpwardPressure()
1331 // Current pressure becomes the result. Restore current pressure. in getUpwardPressure()
1336 /// Get the pressure of each PSet after traversing this instruction top-down.
1341 // Snapshot pressure. in getDownwardPressure()
1347 // Current pressure becomes the result. Restore current pressure. in getDownwardPressure()