LLVM API Documentation
#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 TargetRegisterClass * | getInstrOperandRegClass (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 DEBUG_TYPE "sched" |
Definition at line 16 of file ScheduleDAG.cpp.
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().
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().