LLVM API Documentation

ScheduleDAGList.cpp File Reference

#include "llvm/CodeGen/ScheduleDAG.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/MRegisterInfo.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/Statistic.h"
#include <climits>
#include <iostream>
#include <queue>

Include dependency graph for ScheduleDAGList.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "sched"

Functions

static SUnitgetSingleUnscheduledPred (SUnit *SU)
ScheduleDAGllvm::createTDListDAGScheduler (SelectionDAG &DAG, MachineBasicBlock *BB, HazardRecognizer *HR)

Variables

static Statistic NumNoops ("scheduler","Number of noops inserted")
static Statistic NumStalls ("scheduler","Number of pipeline stalls")


Define Documentation

#define DEBUG_TYPE   "sched"

Definition at line 21 of file ScheduleDAGList.cpp.


Function Documentation

static SUnit* getSingleUnscheduledPred ( SUnit SU  )  [static]

getSingleUnscheduledPred - If there is exactly one unscheduled predecessor of SU, return it, otherwise return null.

Definition at line 449 of file ScheduleDAGList.cpp.

References E, and llvm::SUnit::Preds.


Variable Documentation

SchedulingPriorityQueue* AvailableQueue

AvailableQueue - The priority queue to use for the available SUnits.

Definition at line 50 of file ScheduleDAGList.cpp.

HazardRecognizer* HazardRec

HazardRec - The hazard recognizer to use.

Definition at line 60 of file ScheduleDAGList.cpp.

std::vector<int> Latencies

Definition at line 314 of file ScheduleDAGList.cpp.

std::vector<unsigned> NumNodesSolelyBlocking

NumNodesSolelyBlocking - This vector contains, for every node in the Queue, the number of nodes that the node is the sole unscheduled predecessor for. This is used as a tie-breaker heuristic for better mobility.

Definition at line 320 of file ScheduleDAGList.cpp.

Statistic NumNoops("scheduler","Number of noops inserted") [static]

Statistic NumStalls("scheduler","Number of pipeline stalls") [static]

std::vector<std::pair<unsigned, SUnit*> > PendingQueue

PendingQueue - This contains all of the instructions whose operands have been issued, but their results are not ready yet (due to the latency of the operation). Once the operands becomes available, the instruction is added to the AvailableQueue. This keeps track of each SUnit and the number of cycles left to execute before the operation is available.

Definition at line 57 of file ScheduleDAGList.cpp.

LatencyPriorityQueue* PQ

Definition at line 299 of file ScheduleDAGList.cpp.

std::priority_queue<SUnit*, std::vector<SUnit*>, latency_sort> Queue

Definition at line 322 of file ScheduleDAGList.cpp.

const std::vector<SUnit>* SUnits

Definition at line 310 of file ScheduleDAGList.cpp.