#ifndef LLVM_LIB_TARGET_AMDGPU_GCNSCHEDSTRATEGY_H
#define LLVM_LIB_TARGET_AMDGPU_GCNSCHEDSTRATEGY_H
#include "GCNRegPressure.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/CodeGen/MachineScheduler.h"
namespace llvm {
class SIMachineFunctionInfo;
class SIRegisterInfo;
class GCNSubtarget;
class GCNSchedStage;
enum class GCNSchedStageID : unsigned { … };
#ifndef NDEBUG
raw_ostream &operator<<(raw_ostream &OS, const GCNSchedStageID &StageID);
#endif
class GCNSchedStrategy : public GenericScheduler { … };
class GCNMaxOccupancySchedStrategy final : public GCNSchedStrategy { … };
class GCNMaxILPSchedStrategy final : public GCNSchedStrategy { … };
class ScheduleMetrics { … };
inline raw_ostream &operator<<(raw_ostream &OS, const ScheduleMetrics &Sm) { … }
class GCNScheduleDAGMILive;
class RegionPressureMap { … };
class GCNScheduleDAGMILive final : public ScheduleDAGMILive { … };
class GCNSchedStage { … };
class OccInitialScheduleStage : public GCNSchedStage { … };
class UnclusteredHighRPStage : public GCNSchedStage { … };
class ClusteredLowOccStage : public GCNSchedStage { … };
class PreRARematStage : public GCNSchedStage { … };
class ILPInitialScheduleStage : public GCNSchedStage { … };
class GCNPostScheduleDAGMILive final : public ScheduleDAGMI { … };
}
#endif