LLVM: lib/Target/Hexagon/HexagonMachineScheduler.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
20
21using namespace llvm;
22
23#define DEBUG_TYPE "machine-scheduler"
24
25
27 const SUnit *SUu) {
29
30
31 if (QII->mayBeCurLoad(*SUd->getInstr()))
32 return false;
33
34 if (QII->canExecuteInBundle(*SUd->getInstr(), *SUu->getInstr()))
35 return false;
36
38}
39
44
48 bool verbose) {
49 int ResCount =
51
53 return ResCount;
54
59 Top.ResourceModel->isResourceAvailable(SU, true)) {
63 Bot.ResourceModel->isResourceAvailable(SU, false)) {
66 }
67 }
68
69 return ResCount;
70}
VLIWMachineScheduler * DAG
static constexpr unsigned PriorityTwo
const TargetSchedModel * SchedModel
virtual int SchedulingCost(ReadyQueue &Q, SUnit *SU, SchedCandidate &Candidate, RegPressureDelta &Delta, bool verbose)
Single point to compute overall scheduling cost.
VLIWResourceModel * createVLIWResourceModel(const TargetSubtargetInfo &STI, const TargetSchedModel *SchedModel) const override
Definition HexagonMachineScheduler.cpp:40
int SchedulingCost(ReadyQueue &Q, SUnit *SU, SchedCandidate &Candidate, RegPressureDelta &Delta, bool verbose) override
Single point to compute overall scheduling cost.
Definition HexagonMachineScheduler.cpp:45
const HexagonInstrInfo * getInstrInfo() const override
bool hasDependence(const SUnit *SUd, const SUnit *SUu) override
Return true if there is a dependence between SUd and SUu.
Definition HexagonMachineScheduler.cpp:26
Helpers for implementing custom MachineSchedStrategy classes.
Scheduling unit. This is a node in the scheduling DAG.
bool isInstr() const
Returns true if this SUnit refers to a machine instruction as opposed to an SDNode.
bool isScheduled
True once scheduled.
MachineInstr * getInstr() const
Returns the representative MachineInstr for this SUnit.
Provide an instruction scheduling machine model to CodeGen passes.
TargetSubtargetInfo - Generic base class for all target subtargets.
virtual bool hasDependence(const SUnit *SUd, const SUnit *SUu)
Return true if there is a dependence between SUd and SUu.
const TargetInstrInfo * TII
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
Store the state used by ConvergingVLIWScheduler heuristics, required for the lifetime of one invocati...
Store the effects of a change in pressure on things that MI scheduler cares about.