LLVM: include/llvm/MCA/Stages/DispatchStage.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18#ifndef LLVM_MCA_STAGES_DISPATCHSTAGE_H

19#define LLVM_MCA_STAGES_DISPATCHSTAGE_H

20

27

28namespace llvm {

29namespace mca {

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

50 unsigned DispatchWidth;

51 unsigned AvailableEntries;

52 unsigned CarryOver;

57

58 bool checkRCU(const InstRef &IR) const;

59 bool checkPRF(const InstRef &IR) const;

60 bool canDispatch(const InstRef &IR) const;

62

63 void notifyInstructionDispatched(const InstRef &IR,

65 unsigned uOps) const;

66

67public:

71

73

74

75

79

80#ifndef NDEBUG

81 void dump() const;

82#endif

83};

84}

85}

86

87#endif

unsigned const MachineRegisterInfo * MRI

Legalize the Machine IR a function s Machine IR

This file defines abstractions used by the Pipeline to model register reads, register writes and inst...

This file defines a register mapping file class.

This file simulates the hardware responsible for retiring instructions.

This file defines a stage.

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

Lightweight error class with error context and mandatory checking.

MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...

Generic base class for all target subtargets.

bool hasWorkToComplete() const override

Returns true if some instructions are still executing this stage.

Definition DispatchStage.h:76

Error cycleStart() override

Called once at the start of each cycle.

bool isAvailable(const InstRef &IR) const override

Returns true if it can execute IR during this cycle.

Error execute(InstRef &IR) override

The primary action that this stage performs on instruction IR.

DispatchStage(const MCSubtargetInfo &Subtarget, const MCRegisterInfo &MRI, unsigned MaxDispatchWidth, RetireControlUnit &R, RegisterFile &F)

An InstRef contains both a SourceMgr index and Instruction pair.

Manages hardware register files, and tracks register definitions for register renaming purposes.

This is an optimization pass for GlobalISel generic memory operations.

This class tracks which instructions are in-flight (i.e., dispatched but not retired) in the OoO back...