LLVM 22.0.0git
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:
[legend]

Public Member Functions

LLVM_ABI void reset ()
 Clear the result so it can be used for another round of pressure tracking.
LLVM_ABI void openTop (SlotIndex NextTop)
 If the current top is not less than or equal to the next index, open it.
LLVM_ABI void openBottom (SlotIndex PrevBottom)
 If the current bottom is not greater than the previous index, open it.
Public Member Functions inherited from llvm::RegisterPressure
LLVM_ABI 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< VRegMaskOrUnit, 8 > LiveInRegs
 List of live in virtual registers or physical register units.
SmallVector< VRegMaskOrUnit, 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 68 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 206 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 190 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 173 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 71 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 70 of file RegisterPressure.h.

Referenced by openTop(), and reset().


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