LLVM 23.0.0git
llvm::NodeSet Class Reference

A NodeSet contains a set of SUnit DAG nodes with additional information that assigns a priority to the set. More...

#include "llvm/CodeGen/MachinePipeliner.h"

Public Types

using iterator = SetVector<SUnit *>::const_iterator

Public Member Functions

 NodeSet ()=default
 NodeSet (iterator S, iterator E, const SwingSchedulerDAG *DAG)
bool insert (SUnit *SU)
void insert (iterator S, iterator E)
template<typename UnaryPredicate>
bool remove_if (UnaryPredicate P)
unsigned count (SUnit *SU) const
bool hasRecurrence ()
unsigned size () const
bool empty () const
SUnitgetNode (unsigned i) const
void setRecMII (unsigned mii)
void setColocate (unsigned c)
void setExceedPressure (SUnit *SU)
bool isExceedSU (SUnit *SU)
int compareRecMII (NodeSet &RHS)
int getRecMII ()
void computeNodeSetInfo (SwingSchedulerDAG *SSD)
 Summarize node functions for the entire node set.
unsigned getLatency ()
unsigned getMaxDepth ()
void clear ()
 operator SetVector< SUnit * > & ()
bool operator> (const NodeSet &RHS) const
 Sort the node sets by importance.
bool operator== (const NodeSet &RHS) const
bool operator!= (const NodeSet &RHS) const
iterator begin ()
iterator end ()
void print (raw_ostream &os) const
LLVM_DUMP_METHOD void dump () const

Detailed Description

A NodeSet contains a set of SUnit DAG nodes with additional information that assigns a priority to the set.

Definition at line 478 of file MachinePipeliner.h.

Member Typedef Documentation

◆ iterator

Constructor & Destructor Documentation

◆ NodeSet() [1/2]

llvm::NodeSet::NodeSet ( )
default

◆ NodeSet() [2/2]

llvm::NodeSet::NodeSet ( iterator S,
iterator E,
const SwingSchedulerDAG * DAG )
inline

Definition at line 492 of file MachinePipeliner.h.

References E(), llvm::SwingSchedulerDAG::getDDG(), and I.

Member Function Documentation

◆ begin()

iterator llvm::NodeSet::begin ( )
inline

Definition at line 623 of file MachinePipeliner.h.

◆ clear()

void llvm::NodeSet::clear ( )
inline

Definition at line 589 of file MachinePipeliner.h.

◆ compareRecMII()

int llvm::NodeSet::compareRecMII ( NodeSet & RHS)
inline

Definition at line 573 of file MachinePipeliner.h.

References NodeSet(), and RHS.

◆ computeNodeSetInfo()

void llvm::NodeSet::computeNodeSetInfo ( SwingSchedulerDAG * SSD)
inline

Summarize node functions for the entire node set.

Definition at line 578 of file MachinePipeliner.h.

References llvm::SwingSchedulerDAG::getDepth(), and llvm::SwingSchedulerDAG::getMOV().

◆ count()

unsigned llvm::NodeSet::count ( SUnit * SU) const
inline

Definition at line 555 of file MachinePipeliner.h.

Referenced by isIntersect().

◆ dump()

LLVM_DUMP_METHOD void NodeSet::dump ( ) const

Definition at line 3917 of file MachinePipeliner.cpp.

References llvm::dbgs(), LLVM_DUMP_METHOD, and print().

◆ empty()

bool llvm::NodeSet::empty ( ) const
inline

Definition at line 561 of file MachinePipeliner.h.

◆ end()

iterator llvm::NodeSet::end ( )
inline

Definition at line 624 of file MachinePipeliner.h.

◆ getLatency()

unsigned llvm::NodeSet::getLatency ( )
inline

Definition at line 585 of file MachinePipeliner.h.

◆ getMaxDepth()

unsigned llvm::NodeSet::getMaxDepth ( )
inline

Definition at line 587 of file MachinePipeliner.h.

◆ getNode()

SUnit * llvm::NodeSet::getNode ( unsigned i) const
inline

Definition at line 563 of file MachinePipeliner.h.

◆ getRecMII()

int llvm::NodeSet::getRecMII ( )
inline

Definition at line 575 of file MachinePipeliner.h.

◆ hasRecurrence()

bool llvm::NodeSet::hasRecurrence ( )
inline

Definition at line 557 of file MachinePipeliner.h.

◆ insert() [1/2]

void llvm::NodeSet::insert ( iterator S,
iterator E )
inline

Definition at line 549 of file MachinePipeliner.h.

References E().

◆ insert() [2/2]

bool llvm::NodeSet::insert ( SUnit * SU)
inline

Definition at line 547 of file MachinePipeliner.h.

Referenced by checkNode(), and nodes_for_root().

◆ isExceedSU()

bool llvm::NodeSet::isExceedSU ( SUnit * SU)
inline

Definition at line 571 of file MachinePipeliner.h.

◆ operator SetVector< SUnit * > &()

llvm::NodeSet::operator SetVector< SUnit * > & ( )
inline

Definition at line 599 of file MachinePipeliner.h.

◆ operator!=()

bool llvm::NodeSet::operator!= ( const NodeSet & RHS) const
inline

Definition at line 621 of file MachinePipeliner.h.

References NodeSet(), llvm::operator==(), and RHS.

◆ operator==()

bool llvm::NodeSet::operator== ( const NodeSet & RHS) const
inline

Definition at line 616 of file MachinePipeliner.h.

References NodeSet(), and RHS.

◆ operator>()

bool llvm::NodeSet::operator> ( const NodeSet & RHS) const
inline

Sort the node sets by importance.

First, rank them by recurrence MII, then by mobility (least mobile done first), and finally by depth. Each node set may contain a colocate value which is used as the first tie breaker, if it's set.

Definition at line 605 of file MachinePipeliner.h.

References NodeSet(), and RHS.

◆ print()

void NodeSet::print ( raw_ostream & os) const

Definition at line 3891 of file MachinePipeliner.cpp.

References I, and llvm::size().

◆ remove_if()

template<typename UnaryPredicate>
bool llvm::NodeSet::remove_if ( UnaryPredicate P)
inline

Definition at line 551 of file MachinePipeliner.h.

References P.

◆ setColocate()

void llvm::NodeSet::setColocate ( unsigned c)
inline

Definition at line 567 of file MachinePipeliner.h.

◆ setExceedPressure()

void llvm::NodeSet::setExceedPressure ( SUnit * SU)
inline

Definition at line 569 of file MachinePipeliner.h.

◆ setRecMII()

void llvm::NodeSet::setRecMII ( unsigned mii)
inline

Definition at line 565 of file MachinePipeliner.h.

◆ size()

unsigned llvm::NodeSet::size ( ) const
inline

Definition at line 559 of file MachinePipeliner.h.

Referenced by checkNode().


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