diff --git a/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp b/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp index 1bdbb1a9766..68b8ee39d52 100644 --- a/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp +++ b/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp @@ -71,8 +71,8 @@ void ModuloSchedGraph::addDepEdges() { //Create edge and set delay equal to node latency //FIXME: Is it safe to do this? ModuloSchedGraph::iterator Src = find(I); - SchedGraphEdge *trueDep = new SchedGraphEdge(&*Src->second ,&*Sink->second, &*I, - SchedGraphEdge::TrueDep, + SchedGraphEdge *trueDep = new SchedGraphEdge(&*Src->second ,&*Sink->second, + &*I, SchedGraphEdge::TrueDep, Src->second->getLatency()); //Determine the iteration difference //FIXME: Will this ever happen? diff --git a/lib/CodeGen/ModuloScheduling/README b/lib/CodeGen/ModuloScheduling/README deleted file mode 100644 index 3206161ab42..00000000000 --- a/lib/CodeGen/ModuloScheduling/README +++ /dev/null @@ -1,33 +0,0 @@ -The modulo scheduling pass impliment modulo scheduling for llvm instruction. It includes two passes - - -1. building graph -The pass will build an instance of class ModuloSchedGraph for each loop-including basicblock in a function. The steps to build a graph: - a)build one node for each instruction in the basicblock - ---ModuloScheduGraph::buildNodesforBB() - b)add def-use edges - ---ModuloScheduGraph::addDefUseEdges() - c)add cd edges - ---ModuloScheduGraph::addCDEdges() - d)add mem dependency edges - ---ModuloScheduGraph::addMemEdges() - e)compute resource restriction II and recurrenct II - ---ModuloScheduGraph::computeResII() - ---ModuloScheduGraph::computeRecII() - f)compute each node's property, including ASAP,ALAP, Mov, Depth and Height. - ---ModuloScheduGraph::computeNodeProperty - g)sort all nodes - ---ModuloScheduGraph::orderNodes() - - -2. compute schedule -The second step is to compute a schule and replace the orginal basic block with three basicblocks: prelogue, kernelblock and epilog. - - a)compute the schedule according the algorithm described in the paper - ---ModuloScheduling::computeSchedule() - - b)replace the original basicblock.(to be done) - ---ModuloScheduling::constructPrologue(); - ---ModuloScheduling::constructKernel(); - ---ModuloScheduling::constructEpilogue(); - These three functions are not working yet.