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.