23 prob.setStartTime(op, 0);
29 unsigned startTime = 0;
31 Operation *pred = dep.getSource();
39 startTime = std::max(startTime, *predStart + *prob.
getLatency(predOpr));
This class models the most basic scheduling problem.
std::optional< unsigned > getLatency(OperatorType opr)
The latency is the number of cycles opr needs to compute its result.
std::optional< OperatorType > getLinkedOperatorType(Operation *op)
The linked operator type provides the runtime characteristics for op.
void setStartTime(Operation *op, unsigned val)
std::optional< unsigned > getStartTime(Operation *op)
Return the start time for op, as computed by the scheduler.
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.