16 using namespace circt;
23 prob.setStartTime(op, 0);
29 unsigned startTime = 0;
31 Operation *pred = dep.getSource();
32 auto predStart = prob.getStartTime(pred);
38 auto predOpr = *prob.getLinkedOperatorType(pred);
39 startTime = std::max(startTime, *predStart + *prob.getLatency(predOpr));
This class models the most basic scheduling problem.
void setStartTime(Operation *op, unsigned val)
DependenceRange getDependences(Operation *op)
Return a range object to transparently iterate over op's incoming 1) implicit def-use dependences (ba...
LogicalResult handleOperationsInTopologicalOrder(Problem &prob, HandleOpFn fun)
Visit prob's operations in topological order, using an internal worklist.
LogicalResult scheduleASAP(Problem &prob)
This is a simple list scheduler for solving the basic scheduling problem.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.