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...
This file defines an intermediate representation for circuits acting as an abstraction for constraint...