LLVM 24.0.0git
llvm::SwingSchedulerDDGEdge Class Reference

Represents a dependence between two instruction. More...

#include "llvm/CodeGen/MachinePipeliner.h"

Public Member Functions

 SwingSchedulerDDGEdge (SUnit *PredOrSucc, const SDep &Dep, bool IsSucc, bool IsValidationOnly)
 Creates an edge corresponding to an edge represented by PredOrSucc and Dep in the original DAG.
SUnitgetSrc () const
 Returns the SUnit from which the edge comes (source node).
SUnitgetDst () const
 Returns the SUnit to which the edge points (destination node).
unsigned getLatency () const
 Returns the latency value for the edge.
void setLatency (unsigned Latency)
 Sets the latency for the edge.
unsigned getDistance () const
 Returns the distance value for the edge.
void setDistance (unsigned D)
 Sets the distance value for the edge.
Register getReg () const
 Returns the register associated with the edge.
bool isAntiDep () const
 Returns true if the edge represents anti dependence.
bool isOutputDep () const
 Returns true if the edge represents output dependence.
bool isOrderDep () const
 Returns true if the edge represents a dependence that is not data, anti or output dependence.
bool isBarrier () const
 Returns true if the edge represents unknown scheduling barrier.
bool isArtificial () const
 Returns true if the edge represents an artificial dependence.
bool isAssignedRegDep () const
 Tests if this is a Data dependence that is associated with a register.
LLVM_ABI bool ignoreDependence (bool IgnoreAnti) const
 Returns true for DDG nodes that we ignore when computing the cost functions.
bool isValidationOnly () const
 Returns true if this edge is intended to be used only for validating the schedule.

Detailed Description

Represents a dependence between two instruction.

Definition at line 115 of file MachinePipeliner.h.

Constructor & Destructor Documentation

◆ SwingSchedulerDDGEdge()

llvm::SwingSchedulerDDGEdge::SwingSchedulerDDGEdge ( SUnit * PredOrSucc,
const SDep & Dep,
bool IsSucc,
bool IsValidationOnly )
inline

Creates an edge corresponding to an edge represented by PredOrSucc and Dep in the original DAG.

This pair has no information about the direction of the edge, so we need to pass an additional argument IsSucc.

Definition at line 126 of file MachinePipeliner.h.

References llvm::SDep::Anti, llvm::SDep::getSUnit(), and std::swap().

Member Function Documentation

◆ getDistance()

unsigned llvm::SwingSchedulerDDGEdge::getDistance ( ) const
inline

Returns the distance value for the edge.

Definition at line 159 of file MachinePipeliner.h.

◆ getDst()

SUnit * llvm::SwingSchedulerDDGEdge::getDst ( ) const
inline

Returns the SUnit to which the edge points (destination node).

Definition at line 150 of file MachinePipeliner.h.

◆ getLatency()

unsigned llvm::SwingSchedulerDDGEdge::getLatency ( ) const
inline

Returns the latency value for the edge.

Definition at line 153 of file MachinePipeliner.h.

◆ getReg()

Register llvm::SwingSchedulerDDGEdge::getReg ( ) const
inline

Returns the register associated with the edge.

Definition at line 165 of file MachinePipeliner.h.

◆ getSrc()

SUnit * llvm::SwingSchedulerDDGEdge::getSrc ( ) const
inline

Returns the SUnit from which the edge comes (source node).

Definition at line 147 of file MachinePipeliner.h.

◆ ignoreDependence()

bool SwingSchedulerDDGEdge::ignoreDependence ( bool IgnoreAnti) const

Returns true for DDG nodes that we ignore when computing the cost functions.

We ignore the back-edge recurrence in order to avoid unbounded recursion in the calculation of the ASAP, ALAP, etc functions.

Definition at line 4185 of file MachinePipeliner.cpp.

References llvm::SDep::Anti.

◆ isAntiDep()

bool llvm::SwingSchedulerDDGEdge::isAntiDep ( ) const
inline

Returns true if the edge represents anti dependence.

Definition at line 168 of file MachinePipeliner.h.

References llvm::SDep::Anti.

◆ isArtificial()

bool llvm::SwingSchedulerDDGEdge::isArtificial ( ) const
inline

Returns true if the edge represents an artificial dependence.

Definition at line 181 of file MachinePipeliner.h.

◆ isAssignedRegDep()

bool llvm::SwingSchedulerDDGEdge::isAssignedRegDep ( ) const
inline

Tests if this is a Data dependence that is associated with a register.

Definition at line 184 of file MachinePipeliner.h.

◆ isBarrier()

bool llvm::SwingSchedulerDDGEdge::isBarrier ( ) const
inline

Returns true if the edge represents unknown scheduling barrier.

Definition at line 178 of file MachinePipeliner.h.

◆ isOrderDep()

bool llvm::SwingSchedulerDDGEdge::isOrderDep ( ) const
inline

Returns true if the edge represents a dependence that is not data, anti or output dependence.

Definition at line 175 of file MachinePipeliner.h.

References llvm::SDep::Order.

◆ isOutputDep()

bool llvm::SwingSchedulerDDGEdge::isOutputDep ( ) const
inline

Returns true if the edge represents output dependence.

Definition at line 171 of file MachinePipeliner.h.

References llvm::SDep::Output.

◆ isValidationOnly()

bool llvm::SwingSchedulerDDGEdge::isValidationOnly ( ) const
inline

Returns true if this edge is intended to be used only for validating the schedule.

Definition at line 193 of file MachinePipeliner.h.

◆ setDistance()

void llvm::SwingSchedulerDDGEdge::setDistance ( unsigned D)
inline

Sets the distance value for the edge.

Definition at line 162 of file MachinePipeliner.h.

References D().

◆ setLatency()

void llvm::SwingSchedulerDDGEdge::setLatency ( unsigned Latency)
inline

Sets the latency for the edge.

Definition at line 156 of file MachinePipeliner.h.

References llvm::Latency.


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