* The itf exposed by InstrScheduling is now a single function to create the right pass

* InstructionScheduling is now a real pass
* InstrSched _uses_ LiveVar analysis, instead of creating it's own copy many times
  through a loop.  In this was LiveVarAnalysis is actually even SHARED by Register
  allocation.
* SchedPriorities is now passed the live var information in


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1700 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2002-02-04 20:02:16 +00:00
parent 4fd2dbbf1d
commit 9adb7ad457
6 changed files with 126 additions and 102 deletions

View File

@@ -19,21 +19,18 @@
//**************************************************************************/
#include "SchedPriorities.h"
#include "llvm/Analysis/LiveVar/MethodLiveVarInfo.h"
#include "Support/PostOrderIterator.h"
#include <iostream>
using std::cerr;
SchedPriorities::SchedPriorities(const Method* method,
const SchedGraph* _graph)
: curTime(0),
graph(_graph),
methodLiveVarInfo(method), // expensive!
nodeDelayVec(_graph->getNumNodes(), INVALID_LATENCY), // make errors obvious
earliestForNode(_graph->getNumNodes(), 0),
SchedPriorities::SchedPriorities(const Method *method, const SchedGraph *G,
MethodLiveVarInfo &LVI)
: curTime(0), graph(G), methodLiveVarInfo(LVI),
nodeDelayVec(G->getNumNodes(), INVALID_LATENCY), // make errors obvious
earliestForNode(G->getNumNodes(), 0),
earliestReadyTime(0),
nextToTry(candsAsHeap.begin())
{
methodLiveVarInfo.analyze();
nextToTry(candsAsHeap.begin()) {
computeDelays(graph);
}