LLVM API Documentation

ScheduleDAG.cpp File Reference

#include "llvm/CodeGen/ScheduleDAG.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include <iostream>

Include dependency graph for ScheduleDAG.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "sched"

Functions

static void CalculateDepths (SUnit *SU, unsigned Depth)
static void CalculateHeights (SUnit *SU, unsigned Height)
static unsigned CountResults (SDNode *Node)
static unsigned CountOperands (SDNode *Node)
static const TargetRegisterClassgetInstrOperandRegClass (const MRegisterInfo *MRI, const TargetInstrInfo *TII, const TargetInstrDescriptor *II, unsigned Op)
static unsigned CreateVirtualRegisters (const MRegisterInfo *MRI, MachineInstr *MI, unsigned NumResults, SSARegMap *RegMap, const TargetInstrInfo *TII, const TargetInstrDescriptor &II)
static unsigned getVR (SDOperand Op, std::map< SDNode *, unsigned > &VRBaseMap)


Define Documentation

#define DEBUG_TYPE   "sched"

Definition at line 16 of file ScheduleDAG.cpp.


Function Documentation

static void CalculateDepths ( SUnit SU,
unsigned  Depth 
) [static]

Definition at line 174 of file ScheduleDAG.cpp.

References llvm::SUnit::Depth, E, and llvm::SUnit::Succs.

static void CalculateHeights ( SUnit SU,
unsigned  Height 
) [static]

Definition at line 192 of file ScheduleDAG.cpp.

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

static unsigned CountOperands ( SDNode Node  )  [static]

CountOperands The inputs to target nodes have any actual inputs first, followed by an optional chain operand, then flag operands. Compute the number of actual operands that will go into the machine instr.

Definition at line 220 of file ScheduleDAG.cpp.

References llvm::MVT::Flag, llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::SDOperand::getValueType(), Node, and llvm::MVT::Other.

Referenced by llvm::ScheduleDAG::EmitNode().

static unsigned CountResults ( SDNode Node  )  [static]

CountResults - The results of target nodes have register or immediate operands first, then an optional chain, and optional flag operands (which do not go into the machine instrs.)

Definition at line 208 of file ScheduleDAG.cpp.

References llvm::MVT::Flag, llvm::SDNode::getNumValues(), llvm::SDNode::getValueType(), Node, and llvm::MVT::Other.

Referenced by llvm::ScheduleDAG::EmitNode().

static unsigned CreateVirtualRegisters ( const MRegisterInfo MRI,
MachineInstr MI,
unsigned  NumResults,
SSARegMap RegMap,
const TargetInstrInfo TII,
const TargetInstrDescriptor II 
) [static]

Definition at line 243 of file ScheduleDAG.cpp.

References llvm::MachineInstr::addRegOperand(), llvm::MachineOperand::Def, getInstrOperandRegClass(), II, MI, MRI, RC, RegMap, and TII.

Referenced by llvm::ScheduleDAG::EmitNode().

static const TargetRegisterClass* getInstrOperandRegClass ( const MRegisterInfo MRI,
const TargetInstrInfo TII,
const TargetInstrDescriptor II,
unsigned  Op 
) [static]

Definition at line 229 of file ScheduleDAG.cpp.

References llvm::TargetOperandInfo::Flags, llvm::TargetInstrInfo::getPointerRegClass(), llvm::MRegisterInfo::getRegClass(), II, llvm::M_LOOK_UP_PTR_REG_CLASS, llvm::M_VARIABLE_OPS, MRI, llvm::TargetOperandInfo::RegClass, and TII.

Referenced by CreateVirtualRegisters().

static unsigned getVR ( SDOperand  Op,
std::map< SDNode *, unsigned > &  VRBaseMap 
) [static]

getVR - Return the virtual register corresponding to the specified result of the specified node.

Definition at line 264 of file ScheduleDAG.cpp.

References Op, and llvm::Use::Val.

Referenced by llvm::ScheduleDAG::EmitNode().