#include "llvm/CodeGen/ScheduleDAG.h"
usingnamespacellvm;
#define DEBUG_TYPE …
namespace {
class GCNMinRegScheduler { … };
}
void GCNMinRegScheduler::initNumPreds(const decltype(ScheduleDAG::SUnits) &SUnits) { … }
int GCNMinRegScheduler::getReadySuccessors(const SUnit *SU) const { … }
int GCNMinRegScheduler::getNotReadySuccessors(const SUnit *SU) const { … }
template <typename Calc>
unsigned GCNMinRegScheduler::findMax(unsigned Num, Calc C) { … }
GCNMinRegScheduler::Candidate* GCNMinRegScheduler::pickCandidate() { … }
void GCNMinRegScheduler::bumpPredsPriority(const SUnit *SchedSU, int Priority) { … }
void GCNMinRegScheduler::releaseSuccessors(const SUnit* SU, int Priority) { … }
std::vector<const SUnit*>
GCNMinRegScheduler::schedule(ArrayRef<const SUnit*> TopRoots,
const ScheduleDAG &DAG) { … }
namespace llvm {
std::vector<const SUnit*> makeMinRegSchedule(ArrayRef<const SUnit*> TopRoots,
const ScheduleDAG &DAG) { … }
}