LLVM  10.0.0svn
Macros | Functions | Variables
ScheduleDAGSDNodes.cpp File Reference
#include "ScheduleDAGSDNodes.h"
#include "InstrEmitter.h"
#include "SDNodeDbgValue.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/MC/MCInstrItineraries.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for ScheduleDAGSDNodes.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "pre-RA-sched"
 

Functions

 STATISTIC (LoadsClustered, "Number of loads clustered together")
 
static void CheckForPhysRegDependency (SDNode *Def, SDNode *User, unsigned Op, const TargetRegisterInfo *TRI, const TargetInstrInfo *TII, unsigned &PhysReg, int &Cost)
 CheckForPhysRegDependency - Check if the dependency between def and use of a specified operand is a physical register dependency. More...
 
static void CloneNodeWithValues (SDNode *N, SelectionDAG *DAG, ArrayRef< EVT > VTs, SDValue ExtraOper=SDValue())
 
static bool AddGlue (SDNode *N, SDValue Glue, bool AddGlue, SelectionDAG *DAG)
 
static void RemoveUnusedGlue (SDNode *N, SelectionDAG *DAG)
 
static void ProcessSDDbgValues (SDNode *N, SelectionDAG *DAG, InstrEmitter &Emitter, SmallVectorImpl< std::pair< unsigned, MachineInstr *> > &Orders, DenseMap< SDValue, unsigned > &VRBaseMap, unsigned Order)
 ProcessSDDbgValues - Process SDDbgValues associated with this node. More...
 
static void ProcessSourceNode (SDNode *N, SelectionDAG *DAG, InstrEmitter &Emitter, DenseMap< SDValue, unsigned > &VRBaseMap, SmallVectorImpl< std::pair< unsigned, MachineInstr *>> &Orders, SmallSet< unsigned, 8 > &Seen, MachineInstr *NewInsn)
 

Variables

static cl::opt< int > HighLatencyCycles ("sched-high-latency-cycles", cl::Hidden, cl::init(10), cl::desc("Roughly estimate the number of cycles that 'long latency'" "instructions take for targets with no itinerary"))
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "pre-RA-sched"

Definition at line 36 of file ScheduleDAGSDNodes.cpp.

Function Documentation

◆ AddGlue()

static bool AddGlue ( SDNode N,
SDValue  Glue,
bool  AddGlue,
SelectionDAG DAG 
)
static

◆ CheckForPhysRegDependency()

static void CheckForPhysRegDependency ( SDNode Def,
SDNode User,
unsigned  Op,
const TargetRegisterInfo TRI,
const TargetInstrInfo TII,
unsigned PhysReg,
int &  Cost 
)
static

◆ CloneNodeWithValues()

static void CloneNodeWithValues ( SDNode N,
SelectionDAG DAG,
ArrayRef< EVT VTs,
SDValue  ExtraOper = SDValue() 
)
static

◆ ProcessSDDbgValues()

static void ProcessSDDbgValues ( SDNode N,
SelectionDAG DAG,
InstrEmitter Emitter,
SmallVectorImpl< std::pair< unsigned, MachineInstr *> > &  Orders,
DenseMap< SDValue, unsigned > &  VRBaseMap,
unsigned  Order 
)
static

◆ ProcessSourceNode()

static void ProcessSourceNode ( SDNode N,
SelectionDAG DAG,
InstrEmitter Emitter,
DenseMap< SDValue, unsigned > &  VRBaseMap,
SmallVectorImpl< std::pair< unsigned, MachineInstr *>> &  Orders,
SmallSet< unsigned, 8 > &  Seen,
MachineInstr NewInsn 
)
static

◆ RemoveUnusedGlue()

static void RemoveUnusedGlue ( SDNode N,
SelectionDAG DAG 
)
static

◆ STATISTIC()

STATISTIC ( LoadsClustered  ,
"Number of loads clustered together"   
)

Variable Documentation

◆ HighLatencyCycles

cl::opt<int> HighLatencyCycles("sched-high-latency-cycles", cl::Hidden, cl::init(10), cl::desc("Roughly estimate the number of cycles that 'long latency'" "instructions take for targets with no itinerary"))
static