LLVM 22.0.0git
llvm::SIScheduleBlock Class Reference

#include "Target/AMDGPU/SIMachineScheduler.h"

Public Member Functions

 SIScheduleBlock (SIScheduleDAGMI *DAG, SIScheduleBlockCreator *BC, unsigned ID)
 ~SIScheduleBlock ()=default
unsigned getID () const
void addUnit (SUnit *SU)
 Functions for Block construction.
void finalizeUnits ()
void addPred (SIScheduleBlock *Pred)
void addSucc (SIScheduleBlock *Succ, SIScheduleBlockLinkKind Kind)
const std::vector< SIScheduleBlock * > & getPreds () const
ArrayRef< std::pair< SIScheduleBlock *, SIScheduleBlockLinkKind > > getSuccs () const
unsigned getNumHighLatencySuccessors () const
bool isHighLatencyBlock ()
int getCost ()
void fastSchedule ()
std::vector< SUnit * > getScheduledUnits ()
void schedule (MachineBasicBlock::iterator BeginBlock, MachineBasicBlock::iterator EndBlock)
bool isScheduled ()
std::vector< unsigned > & getInternalAdditionalRegUsage ()
std::set< Register > & getInRegs ()
std::set< Register > & getOutRegs ()
void printDebug (bool Full)

Public Attributes

unsigned Height = 0
unsigned Depth = 0

Detailed Description

Definition at line 58 of file SIMachineScheduler.h.

Constructor & Destructor Documentation

◆ SIScheduleBlock()

llvm::SIScheduleBlock::SIScheduleBlock ( SIScheduleDAGMI * DAG,
SIScheduleBlockCreator * BC,
unsigned ID )
inline

Definition at line 101 of file SIMachineScheduler.h.

Referenced by addPred(), addSucc(), and printDebug().

◆ ~SIScheduleBlock()

llvm::SIScheduleBlock::~SIScheduleBlock ( )
default

Member Function Documentation

◆ addPred()

void SIScheduleBlock::addPred ( SIScheduleBlock * Pred)

Definition at line 512 of file SIMachineScheduler.cpp.

References assert(), llvm::none_of(), P, and SIScheduleBlock().

◆ addSucc()

void SIScheduleBlock::addSucc ( SIScheduleBlock * Succ,
SIScheduleBlockLinkKind Kind )

◆ addUnit()

void SIScheduleBlock::addUnit ( SUnit * SU)

Functions for Block construction.

Definition at line 176 of file SIMachineScheduler.cpp.

References llvm::SUnit::NodeNum.

◆ fastSchedule()

void SIScheduleBlock::fastSchedule ( )

Definition at line 267 of file SIMachineScheduler.cpp.

Referenced by schedule().

◆ finalizeUnits()

void SIScheduleBlock::finalizeUnits ( )

Definition at line 501 of file SIMachineScheduler.cpp.

References llvm::SUnit::NodeNum.

◆ getCost()

int llvm::SIScheduleBlock::getCost ( )
inline

Definition at line 135 of file SIMachineScheduler.h.

◆ getID()

unsigned llvm::SIScheduleBlock::getID ( ) const
inline

Definition at line 107 of file SIMachineScheduler.h.

Referenced by addSucc().

◆ getInRegs()

std::set< Register > & llvm::SIScheduleBlock::getInRegs ( )
inline

Definition at line 160 of file SIMachineScheduler.h.

◆ getInternalAdditionalRegUsage()

std::vector< unsigned > & llvm::SIScheduleBlock::getInternalAdditionalRegUsage ( )
inline

Definition at line 156 of file SIMachineScheduler.h.

◆ getNumHighLatencySuccessors()

unsigned llvm::SIScheduleBlock::getNumHighLatencySuccessors ( ) const
inline

Definition at line 126 of file SIMachineScheduler.h.

◆ getOutRegs()

std::set< Register > & llvm::SIScheduleBlock::getOutRegs ( )
inline

Definition at line 161 of file SIMachineScheduler.h.

◆ getPreds()

const std::vector< SIScheduleBlock * > & llvm::SIScheduleBlock::getPreds ( ) const
inline

Definition at line 119 of file SIMachineScheduler.h.

◆ getScheduledUnits()

std::vector< SUnit * > llvm::SIScheduleBlock::getScheduledUnits ( )
inline

Definition at line 142 of file SIMachineScheduler.h.

◆ getSuccs()

ArrayRef< std::pair< SIScheduleBlock *, SIScheduleBlockLinkKind > > llvm::SIScheduleBlock::getSuccs ( ) const
inline

Definition at line 121 of file SIMachineScheduler.h.

◆ isHighLatencyBlock()

bool llvm::SIScheduleBlock::isHighLatencyBlock ( )
inline

Definition at line 130 of file SIMachineScheduler.h.

Referenced by addSucc().

◆ isScheduled()

bool llvm::SIScheduleBlock::isScheduled ( )
inline

Definition at line 152 of file SIMachineScheduler.h.

◆ printDebug()

void SIScheduleBlock::printDebug ( bool Full)

Definition at line 553 of file SIMachineScheduler.cpp.

References llvm::dbgs(), P, llvm::printVRegOrUnit(), and SIScheduleBlock().

◆ schedule()

void SIScheduleBlock::schedule ( MachineBasicBlock::iterator BeginBlock,
MachineBasicBlock::iterator EndBlock )

Definition at line 373 of file SIMachineScheduler.cpp.

References assert(), fastSchedule(), and llvm::SUnit::getInstr().

Member Data Documentation

◆ Depth

unsigned llvm::SIScheduleBlock::Depth = 0

Definition at line 124 of file SIMachineScheduler.h.

◆ Height

unsigned llvm::SIScheduleBlock::Height = 0

Definition at line 123 of file SIMachineScheduler.h.


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