LLVM 22.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 481 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 495 of file MachinePipeliner.h.

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

Member Function Documentation

◆ begin()

iterator llvm::NodeSet::begin ( )
inline

Definition at line 626 of file MachinePipeliner.h.

◆ clear()

void llvm::NodeSet::clear ( )
inline

Definition at line 592 of file MachinePipeliner.h.

◆ compareRecMII()

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

Definition at line 576 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 581 of file MachinePipeliner.h.

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

◆ count()

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

Definition at line 558 of file MachinePipeliner.h.

Referenced by isIntersect().

◆ dump()

LLVM_DUMP_METHOD void NodeSet::dump ( ) const

Definition at line 3822 of file MachinePipeliner.cpp.

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

◆ empty()

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

Definition at line 564 of file MachinePipeliner.h.

◆ end()

iterator llvm::NodeSet::end ( )
inline

Definition at line 627 of file MachinePipeliner.h.

◆ getLatency()

unsigned llvm::NodeSet::getLatency ( )
inline

Definition at line 588 of file MachinePipeliner.h.

◆ getMaxDepth()

unsigned llvm::NodeSet::getMaxDepth ( )
inline

Definition at line 590 of file MachinePipeliner.h.

◆ getNode()

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

Definition at line 566 of file MachinePipeliner.h.

◆ getRecMII()

int llvm::NodeSet::getRecMII ( )
inline

Definition at line 578 of file MachinePipeliner.h.

◆ hasRecurrence()

bool llvm::NodeSet::hasRecurrence ( )
inline

Definition at line 560 of file MachinePipeliner.h.

◆ insert() [1/2]

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

Definition at line 552 of file MachinePipeliner.h.

References E().

◆ insert() [2/2]

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

Definition at line 550 of file MachinePipeliner.h.

Referenced by checkNode(), and nodes_for_root().

◆ isExceedSU()

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

Definition at line 574 of file MachinePipeliner.h.

◆ operator SetVector< SUnit * > &()

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

Definition at line 602 of file MachinePipeliner.h.

◆ operator!=()

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

Definition at line 624 of file MachinePipeliner.h.

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

◆ operator==()

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

Definition at line 619 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 608 of file MachinePipeliner.h.

References NodeSet(), and RHS.

◆ print()

void NodeSet::print ( raw_ostream & os) const

Definition at line 3796 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 554 of file MachinePipeliner.h.

References P.

◆ setColocate()

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

Definition at line 570 of file MachinePipeliner.h.

◆ setExceedPressure()

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

Definition at line 572 of file MachinePipeliner.h.

◆ setRecMII()

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

Definition at line 568 of file MachinePipeliner.h.

◆ size()

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

Definition at line 562 of file MachinePipeliner.h.

Referenced by checkNode().


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