13#ifndef LLVM_LIB_TARGET_POWERPC_POWERPCMACHINESCHEDULER_H
14#define LLVM_LIB_TARGET_POWERPC_POWERPCMACHINESCHEDULER_H
26 bool tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand,
30 bool biasAddiLoadCandidate(SchedCandidate &Cand,
31 SchedCandidate &TryCand,
47 bool tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand)
override;
GenericScheduler shrinks the unscheduled zone using heuristics to balance the schedule.
A MachineSchedStrategy implementation for PowerPC post RA scheduling.
SUnit * pickNode(bool &IsTopNode) override
Pick the next node to schedule.
PPCPostRASchedStrategy(const MachineSchedContext *C)
void enterMBB(MachineBasicBlock *MBB) override
Tell the strategy that MBB is about to be processed.
bool tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand) override
Apply a set of heuristics to a new candidate for PostRA scheduling.
bool biasAddiCandidate(SchedCandidate &Cand, SchedCandidate &TryCand) const
void leaveMBB() override
Tell the strategy that current MBB is done.
void initialize(ScheduleDAGMI *Dag) override
Initialize the strategy after building the DAG for a new region.
A MachineSchedStrategy implementation for PowerPC pre RA scheduling.
bool tryCandidate(SchedCandidate &Cand, SchedCandidate &TryCand, SchedBoundary *Zone) const override
Apply a set of heuristics to a new candidate.
PPCPreRASchedStrategy(const MachineSchedContext *C)
PostGenericScheduler - Interface to the scheduling algorithm used by ScheduleDAGMI.
Scheduling unit. This is a node in the scheduling DAG.
Each Scheduling boundary is associated with ready queues.
ScheduleDAGMI is an implementation of ScheduleDAGInstrs that simply schedules machine instructions ac...
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.
MachineSchedContext provides enough context from the MachineScheduler pass for the target to instanti...