13 #ifndef CIRCT_SCHEDULING_UTILITIES_H
14 #define CIRCT_SCHEDULING_UTILITIES_H
18 #include "llvm/Support/raw_ostream.h"
23 namespace scheduling {
25 using HandleOpFn = std::function<LogicalResult(Operation *)>;
44 SmallVectorImpl<Problem::Dependence> &result);
This class models the accumulation of physical propagation delays on combinational paths along SSA de...
This class models the most basic scheduling problem.
LogicalResult handleOperationsInTopologicalOrder(Problem &prob, HandleOpFn fun)
Visit prob's operations in topological order, using an internal worklist.
void dumpAsDOT(Problem &prob, StringRef fileName)
Export prob as a DOT graph into fileName.
std::function< LogicalResult(Operation *)> HandleOpFn
LogicalResult computeChainBreakingDependences(ChainingProblem &prob, float cycleTime, SmallVectorImpl< Problem::Dependence > &result)
Analyse combinational chains in prob's dependence graph and determine pairs of operations that must b...
LogicalResult computeStartTimesInCycle(ChainingProblem &prob)
Assuming prob is scheduled and contains (integer) start times, this method fills in the start times i...
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.