diff options
author | Dan Gohman <gohman@apple.com> | 2008-12-23 18:36:58 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-12-23 18:36:58 +0000 |
commit | 04543e719e53c3ebd6533ef4cb4bdf60c27d658c (patch) | |
tree | 404d0f10b264c90d8fef26d7185f88c80a0a0f6e /llvm/lib/CodeGen/SelectionDAG | |
parent | 3f94706e5784a9b3d55a061742b8e2fe62eb69ad (diff) | |
download | bcm5719-llvm-04543e719e53c3ebd6533ef4cb4bdf60c27d658c.tar.gz bcm5719-llvm-04543e719e53c3ebd6533ef4cb4bdf60c27d658c.zip |
Rename BuildSchedUnits to BuildSchedGraph, and refactor the
code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions.
llvm-svn: 61376
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
4 files changed, 20 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp index d917386967c..113dfb1751d 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp @@ -114,8 +114,8 @@ void ScheduleDAGFast::Schedule() { LiveRegDefs.resize(TRI->getNumRegs(), NULL); LiveRegCycles.resize(TRI->getNumRegs(), 0); - // Build scheduling units. - BuildSchedUnits(); + // Build the scheduling graph. + BuildSchedGraph(); DEBUG(for (unsigned su = 0, e = SUnits.size(); su != e; ++su) SUnits[su].dumpAll(this)); diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp index d42c8d88673..fea74ca3038 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp @@ -91,8 +91,8 @@ HazardRecognizer::~HazardRecognizer() {} void ScheduleDAGList::Schedule() { DOUT << "********** List Scheduling **********\n"; - // Build scheduling units. - BuildSchedUnits(); + // Build the scheduling graph. + BuildSchedGraph(); AvailableQueue->initNodes(SUnits); diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp index c3b6137ae36..aededf44440 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp @@ -170,8 +170,8 @@ void ScheduleDAGRRList::Schedule() { LiveRegDefs.resize(TRI->getNumRegs(), NULL); LiveRegCycles.resize(TRI->getNumRegs(), 0); - // Build scheduling units. - BuildSchedUnits(); + // Build the scheduling graph. + BuildSchedGraph(); DEBUG(for (unsigned su = 0, e = SUnits.size(); su != e; ++su) SUnits[su].dumpAll(this)); diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp index 4a7920acedb..347410ae7d6 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp @@ -64,9 +64,6 @@ static void CheckForPhysRegDependency(SDNode *Def, SDNode *User, unsigned Op, } } -/// BuildSchedUnits - Build SUnits from the selection dag that we are input. -/// This SUnit graph is similar to the SelectionDAG, but represents flagged -/// together nodes with a single SUnit. void ScheduleDAGSDNodes::BuildSchedUnits() { // During scheduling, the NodeId field of SDNode is used to map SDNodes // to their associated SUnits by holding SUnits table indices. A value @@ -146,7 +143,9 @@ void ScheduleDAGSDNodes::BuildSchedUnits() { else ComputeLatency(NodeSUnit); } - +} + +void ScheduleDAGSDNodes::AddSchedEdges() { // Pass 2: add the preds, succs, etc. for (unsigned su = 0, e = SUnits.size(); su != e; ++su) { SUnit *SU = &SUnits[su]; @@ -196,6 +195,17 @@ void ScheduleDAGSDNodes::BuildSchedUnits() { } } +/// BuildSchedGraph - Build the SUnit graph from the selection dag that we +/// are input. This SUnit graph is similar to the SelectionDAG, but +/// excludes nodes that aren't interesting to scheduling, and represents +/// flagged together nodes with a single SUnit. +void ScheduleDAGSDNodes::BuildSchedGraph() { + // Populate the SUnits array. + BuildSchedUnits(); + // Compute all the scheduling dependencies between nodes. + AddSchedEdges(); +} + void ScheduleDAGSDNodes::ComputeLatency(SUnit *SU) { const InstrItineraryData &InstrItins = TM.getInstrItineraryData(); |