#include "PPCMachineScheduler.h"
#include "MCTargetDesc/PPCMCTargetDesc.h"
usingnamespacellvm;
static cl::opt<bool>
DisableAddiLoadHeuristic("disable-ppc-sched-addi-load",
cl::desc("Disable scheduling addi instruction before"
"load for ppc"), cl::Hidden);
static cl::opt<bool>
EnableAddiHeuristic("ppc-postra-bias-addi",
cl::desc("Enable scheduling addi instruction as early"
"as possible post ra"),
cl::Hidden, cl::init(true));
static bool isADDIInstr(const GenericScheduler::SchedCandidate &Cand) { … }
bool PPCPreRASchedStrategy::biasAddiLoadCandidate(SchedCandidate &Cand,
SchedCandidate &TryCand,
SchedBoundary &Zone) const { … }
bool PPCPreRASchedStrategy::tryCandidate(SchedCandidate &Cand,
SchedCandidate &TryCand,
SchedBoundary *Zone) const { … }
bool PPCPostRASchedStrategy::biasAddiCandidate(SchedCandidate &Cand,
SchedCandidate &TryCand) const { … }
bool PPCPostRASchedStrategy::tryCandidate(SchedCandidate &Cand,
SchedCandidate &TryCand) { … }
void PPCPostRASchedStrategy::enterMBB(MachineBasicBlock *MBB) { … }
void PPCPostRASchedStrategy::leaveMBB() { … }
void PPCPostRASchedStrategy::initialize(ScheduleDAGMI *Dag) { … }
SUnit *PPCPostRASchedStrategy::pickNode(bool &IsTopNode) { … }