LLVM API Documentation
#include <HexagonMachineScheduler.h>
Public Member Functions | |
VLIWMachineScheduler (MachineSchedContext *C, std::unique_ptr< MachineSchedStrategy > S) | |
void | schedule () override |
void | postprocessDAG () |
Perform platform-specific DAG postprocessing. |
Extend the standard ScheduleDAGMI to provide more context and override the top-level schedule() driver.
Definition at line 96 of file HexagonMachineScheduler.h.
llvm::VLIWMachineScheduler::VLIWMachineScheduler | ( | MachineSchedContext * | C, |
std::unique_ptr< MachineSchedStrategy > | S | ||
) | [inline] |
Definition at line 98 of file HexagonMachineScheduler.h.
void VLIWMachineScheduler::postprocessDAG | ( | ) |
Perform platform-specific DAG postprocessing.
Platform-specific modifications to DAG.
Reimplemented from llvm::ScheduleDAGMI.
Definition at line 24 of file HexagonMachineScheduler.cpp.
References llvm::SDep::Barrier, and llvm::ScheduleDAG::SUnits.
Referenced by schedule().
void VLIWMachineScheduler::schedule | ( | ) | [override, virtual] |
Schedule - This is called back from ScheduleDAGInstrs::Run() when it's time to do some work.
schedule - Called back from MachineScheduler::runOnMachineFunction after setting up the current scheduling region. [RegionBegin, RegionEnd) only includes instructions that have DAG nodes, not scheduling boundaries.
Reimplemented from llvm::ScheduleDAGMILive.
Definition at line 143 of file HexagonMachineScheduler.cpp.
References llvm::ScheduleDAGInstrs::BB, llvm::ScheduleDAGMILive::buildDAGWithRegPressure(), llvm::ScheduleDAGMI::checkSchedLimit(), llvm::ScheduleDAGMI::CurrentBottom, llvm::ScheduleDAGMI::CurrentTop, llvm::dbgs(), DEBUG, llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::MachineFunction::getFunction(), llvm::MachineLoopInfo::getLoopDepth(), llvm::MachineBasicBlock::getName(), llvm::Value::getName(), llvm::MachineBasicBlock::getNumber(), llvm::MachineBasicBlock::getParent(), llvm::ScheduleDAGMI::initQueues(), llvm::ScheduleDAGInstrs::MLI, llvm::ScheduleDAGMI::placeDebugValues(), postprocessDAG(), llvm::ScheduleDAGMI::SchedImpl, llvm::ScheduleDAGMILive::scheduleMI(), llvm::ScheduleDAG::SUnits, and llvm::ScheduleDAGMI::updateQueues().