LLVM API Documentation

ScheduleDAGFast.cpp File Reference

#include "llvm/CodeGen/ScheduleDAGSDNodes.h"
#include "llvm/CodeGen/SchedulerRegistry.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Compiler.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/CommandLine.h"

Include dependency graph for ScheduleDAGFast.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "pre-RA-sched"

Functions

 STATISTIC (NumUnfolds,"Number of nodes unfolded")
 STATISTIC (NumDups,"Number of duplicated nodes")
 STATISTIC (NumPRCopies,"Number of physical copies")
static MVT getPhysicalRegisterVT (SDNode *N, unsigned Reg, const TargetInstrInfo *TII)
ScheduleDAG * llvm::createFastDAGScheduler (SelectionDAGISel *IS, bool Fast)

Variables

static RegisterScheduler fastDAGScheduler ("fast","Fast suboptimal list scheduling", createFastDAGScheduler)


Define Documentation

#define DEBUG_TYPE   "pre-RA-sched"

Definition at line 14 of file ScheduleDAGFast.cpp.


Function Documentation

static MVT getPhysicalRegisterVT ( SDNode *  N,
unsigned  Reg,
const TargetInstrInfo *  TII 
) [static]

getPhysicalRegisterVT - Returns the ValueType of the physical register definition of the specified node. FIXME: Move to SelectionDAG?

Definition at line 415 of file ScheduleDAGFast.cpp.

References llvm::TargetInstrInfo::get(), llvm::TargetInstrDesc::getImplicitDefs(), llvm::SDNode::getMachineOpcode(), llvm::TargetInstrDesc::getNumDefs(), llvm::SDNode::getValueType(), and llvm::TargetInstrDesc::ImplicitDefs.

STATISTIC ( NumPRCopies  ,
"Number of physical copies"   
)

STATISTIC ( NumDups  ,
"Number of duplicated nodes"   
)

STATISTIC ( NumUnfolds  ,
"Number of nodes unfolded"   
)


Variable Documentation

FastPriorityQueue AvailableQueue

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

Definition at line 64 of file ScheduleDAGFast.cpp.

RegisterScheduler fastDAGScheduler("fast","Fast suboptimal list scheduling", createFastDAGScheduler) [static]

std::vector<unsigned> LiveRegCycles

Definition at line 71 of file ScheduleDAGFast.cpp.

std::vector<SUnit*> LiveRegDefs

Definition at line 70 of file ScheduleDAGFast.cpp.

LiveRegDefs - A set of physical registers and their definition that are "live". These nodes must be scheduled before any other nodes that modifies the registers can be scheduled.

Definition at line 69 of file ScheduleDAGFast.cpp.

Definition at line 42 of file ScheduleDAGFast.cpp.