LLVM 20.0.0git
|
Represents dependencies between instructions. More...
#include "llvm/CodeGen/MachinePipeliner.h"
Public Member Functions | |
SwingSchedulerDDG (std::vector< SUnit > &SUnits, SUnit *EntrySU, SUnit *ExitSU) | |
const EdgesType & | getInEdges (const SUnit *SU) const |
const EdgesType & | getOutEdges (const SUnit *SU) const |
Represents dependencies between instructions.
This class is a wrapper of SUnits
and its dependencies to manipulate back-edges in a natural way. Currently it only supports back-edges via PHI, which are expressed as anti-dependencies in the original DAG. FIXME: Support any other loop-carried dependencies
Definition at line 198 of file MachinePipeliner.h.
SwingSchedulerDDG::SwingSchedulerDDG | ( | std::vector< SUnit > & | SUnits, |
SUnit * | EntrySU, | ||
SUnit * | ExitSU | ||
) |
Definition at line 3801 of file MachinePipeliner.cpp.
const SwingSchedulerDDG::EdgesType & SwingSchedulerDDG::getInEdges | ( | const SUnit * | SU | ) | const |
Definition at line 3813 of file MachinePipeliner.cpp.
Referenced by computePath(), llvm::SMSchedule::computeStart(), llvm::SMSchedule::computeUnpipelineableNodes(), llvm::SMSchedule::earliestCycleInChain(), llvm::NodeSet::NodeSet(), llvm::SMSchedule::normalizeNonPipelinedInstructions(), llvm::SMSchedule::onlyHasLoopCarriedOutputOrOrderPreds(), llvm::SMSchedule::orderDependence(), pred_L(), and succ_L().
const SwingSchedulerDDG::EdgesType & SwingSchedulerDDG::getOutEdges | ( | const SUnit * | SU | ) | const |
Definition at line 3818 of file MachinePipeliner.cpp.
Referenced by computePath(), llvm::SMSchedule::computeStart(), llvm::SMSchedule::computeUnpipelineableNodes(), llvm::SMSchedule::isValidSchedule(), llvm::SMSchedule::latestCycleInChain(), llvm::NodeSet::NodeSet(), llvm::SMSchedule::normalizeNonPipelinedInstructions(), llvm::SMSchedule::orderDependence(), pred_L(), and succ_L().