LLVM  8.0.1
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]
Collaboration diagram for llvm::IntervalPressure:
Collaboration graph
[legend]

Public Member Functions

void reset ()
 Clear the result so it can be used for another round of pressure tracking. More...
 
void openTop (SlotIndex NextTop)
 If the current top is not less than or equal to the next index, open it. More...
 
void openBottom (SlotIndex PrevBottom)
 If the current bottom is not greater than the previous index, open it. More...
 
- 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. More...
 
SlotIndex BottomIdx
 
- Public Attributes inherited from llvm::RegisterPressure
std::vector< unsignedMaxSetPressure
 Map of max reg pressure indexed by pressure set ID, not class ID. More...
 
SmallVector< RegisterMaskPair, 8 > LiveInRegs
 List of live in virtual registers or physical register units. More...
 
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 69 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 195 of file RegisterPressure.cpp.

References 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 179 of file RegisterPressure.cpp.

References llvm::RegisterPressure::LiveInRegs.

◆ reset()

void IntervalPressure::reset ( )

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

Definition at line 162 of file RegisterPressure.cpp.

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

Member Data Documentation

◆ BottomIdx

SlotIndex llvm::IntervalPressure::BottomIdx

Definition at line 72 of file RegisterPressure.h.

◆ TopIdx

SlotIndex llvm::IntervalPressure::TopIdx

Record the boundary of the region being tracked.

Definition at line 71 of file RegisterPressure.h.


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