LLVM: lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp File Reference (original) (raw)
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, MCRegister &PhysReg, int &Cost) |
| CheckForPhysRegDependency - Check if the dependency between def and use of a specified operand is a physical register dependency. | |
| 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, InstrEmitter::VRBaseMapType &VRBaseMap, unsigned Order) |
| ProcessSDDbgValues - Process SDDbgValues associated with this node. | |
| static void | ProcessSourceNode (SDNode *N, SelectionDAG *DAG, InstrEmitter &Emitter, InstrEmitter::VRBaseMapType &VRBaseMap, SmallVectorImpl< std::pair< unsigned, MachineInstr * > > &Orders, SmallSet< Register, 8 > &Seen, MachineInstr *NewInsn) |
◆ DEBUG_TYPE
#define DEBUG_TYPE "pre-RA-sched"
◆ AddGlue()
◆ CheckForPhysRegDependency()
CheckForPhysRegDependency - Check if the dependency between def and use of a specified operand is a physical register dependency.
If so, returns the register and the cost of copying the register.
Definition at line 111 of file ScheduleDAGSDNodes.cpp.
References llvm::cast(), llvm::ISD::CopyFromReg, llvm::ISD::CopyToReg, llvm::TargetRegisterClass::expensiveOrImpossibleToCopy(), llvm::TargetRegisterClass::getCopyCost(), llvm::User::getOperand(), II, Reg, TII, and TRI.
◆ CloneNodeWithValues()
Definition at line 140 of file ScheduleDAGSDNodes.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::SmallVectorImpl< T >::assign(), llvm::dyn_cast(), llvm::SelectionDAG::getVTList(), llvm::MachineSDNode::memoperands_begin(), llvm::MachineSDNode::memoperands_end(), llvm::SelectionDAG::MorphNodeTo(), N, and llvm::SelectionDAG::setNodeMemRefs().
Referenced by AddGlue(), and RemoveUnusedGlue().
◆ ProcessSDDbgValues()
ProcessSDDbgValues - Process SDDbgValues associated with this node.
Returns true if DV has any VReg operand locations which don't exist in VRBaseMap.
Definition at line 732 of file ScheduleDAGSDNodes.cpp.
References llvm::ScheduleDAGSDNodes::BB, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::ScheduleDAGSDNodes::DAG, Emitter, llvm::SelectionDAG::GetDbgValues(), llvm::MachineBasicBlock::insert(), N, and llvm::SDDbgOperand::SDNODE.
Referenced by ProcessSourceNode().
◆ ProcessSourceNode()
◆ RemoveUnusedGlue()
◆ STATISTIC()
| STATISTIC | ( | LoadsClustered | , |
|---|---|---|---|
| "Number of loads clustered together" | ) |
◆ 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")) ( "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 |
|---|