LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::IntervalPressure Struct Reference

RegisterPressure computed within a region of instructions delimited by TopIdx and BottomIdx. More...

#include "llvm/CodeGen/RegisterPressure.h"

Inheritance diagram for llvm::IntervalPressure:
Inheritance graph
[legend]

Public Member Functions

void reset ()
 Clear the result so it can be used for another round of pressure tracking.
 
void openTop (SlotIndex NextTop)
 If the current top is not less than or equal to the next index, open it.
 
void openBottom (SlotIndex PrevBottom)
 If the current bottom is not greater than the previous index, open it.
 
- Public Member Functions inherited from llvm::RegisterPressure
void dump (const TargetRegisterInfo *TRI) const
 

Public Attributes

SlotIndex TopIdx
 Record the boundary of the region being tracked.
 
SlotIndex BottomIdx
 
- Public Attributes inherited from llvm::RegisterPressure
std::vector< unsignedMaxSetPressure
 Map of max reg pressure indexed by pressure set ID, not class ID.
 
SmallVector< RegisterMaskPair, 8 > LiveInRegs
 List of live in virtual registers or physical register units.
 
SmallVector< RegisterMaskPair, 8 > LiveOutRegs
 

Detailed Description

RegisterPressure computed within a region of instructions delimited by TopIdx and BottomIdx.

During pressure computation, the maximum pressure per register pressure set is increased. Once pressure within a region is fully computed, the live-in and live-out sets are recorded.

This is preferable to RegionPressure when LiveIntervals are available, because delimiting regions by SlotIndex is more robust and convenient than holding block iterators. The block contents can change without invalidating the pressure result.

Definition at line 67 of file RegisterPressure.h.

Member Function Documentation

◆ openBottom()

void IntervalPressure::openBottom ( SlotIndex  PrevBottom)

If the current bottom is not greater than the previous index, open it.

Definition at line 210 of file RegisterPressure.cpp.

References BottomIdx, and llvm::RegisterPressure::LiveInRegs.

◆ openTop()

void IntervalPressure::openTop ( SlotIndex  NextTop)

If the current top is not less than or equal to the next index, open it.

We happen to need the SlotIndex for the next top for pressure update.

Definition at line 194 of file RegisterPressure.cpp.

References llvm::RegisterPressure::LiveInRegs, and TopIdx.

◆ reset()

void IntervalPressure::reset ( )

Clear the result so it can be used for another round of pressure tracking.

Definition at line 177 of file RegisterPressure.cpp.

References BottomIdx, llvm::RegisterPressure::LiveInRegs, llvm::RegisterPressure::LiveOutRegs, llvm::RegisterPressure::MaxSetPressure, and TopIdx.

Member Data Documentation

◆ BottomIdx

SlotIndex llvm::IntervalPressure::BottomIdx

Definition at line 70 of file RegisterPressure.h.

Referenced by openBottom(), and reset().

◆ TopIdx

SlotIndex llvm::IntervalPressure::TopIdx

Record the boundary of the region being tracked.

Definition at line 69 of file RegisterPressure.h.

Referenced by openTop(), and reset().


The documentation for this struct was generated from the following files: