LLVM 22.0.0git
llvm::SwingSchedulerDDG Class Reference

This class provides APIs to retrieve edges from/to an SUnit node, with a particular focus on loop-carried dependencies. More...

#include "llvm/CodeGen/MachinePipeliner.h"

Public Member Functions

 SwingSchedulerDDG (std::vector< SUnit > &SUnits, SUnit *EntrySU, SUnit *ExitSU, const LoopCarriedEdges &LCE)
const EdgesTypegetInEdges (const SUnit *SU) const
const EdgesTypegetOutEdges (const SUnit *SU) const
bool isValidSchedule (const SMSchedule &Schedule) const
 Check if Schedule doesn't violate the validation-only dependencies.

Detailed Description

This class provides APIs to retrieve edges from/to an SUnit node, with a particular focus on loop-carried dependencies.

Since SUnit is not designed to represent such edges, handling them directly using its APIs has required non-trivial logic in the past. This class serves as a wrapper around SUnit, offering a simpler interface for managing these dependencies.

Definition at line 233 of file MachinePipeliner.h.

Constructor & Destructor Documentation

◆ SwingSchedulerDDG()

SwingSchedulerDDG::SwingSchedulerDDG ( std::vector< SUnit > & SUnits,
SUnit * EntrySU,
SUnit * ExitSU,
const LoopCarriedEdges & LCE )

Member Function Documentation

◆ getInEdges()

◆ getOutEdges()

◆ isValidSchedule()

bool SwingSchedulerDDG::isValidSchedule ( const SMSchedule & Schedule) const

Check if Schedule doesn't violate the validation-only dependencies.

Definition at line 4220 of file MachinePipeliner.cpp.

References llvm::SMSchedule::cycleScheduled(), llvm::dbgs(), llvm::SMSchedule::getInitiationInterval(), II, LLVM_DEBUG, and llvm::SMSchedule::stageScheduled().


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