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/TargetMachine.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Support/MathExtras.h"

Include dependency graph for ScheduleDAG.cpp:

Go to the source code of this file.

Functions

static unsigned CountResults (SDNode *Node)
static unsigned CountOperands (SDNode *Node)
static unsigned CreateVirtualRegisters (MachineInstr *MI, unsigned NumResults, SSARegMap *RegMap, const TargetInstrDescriptor &II)
static unsigned getVR (SDOperand Op, std::map< SDNode *, unsigned > &VRBaseMap)


Function Documentation

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 42 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 30 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 ( MachineInstr MI,
unsigned  NumResults,
SSARegMap RegMap,
const TargetInstrDescriptor II 
) [static]

Definition at line 51 of file ScheduleDAG.cpp.

References llvm::MachineInstr::addRegOperand(), II, MI, llvm::TargetOperandInfo::RegClass, and RegMap.

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

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 70 of file ScheduleDAG.cpp.

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

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