LLVM: lib/Target/PowerPC/PPCHazardRecognizers.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_POWERPC_PPCHAZARDRECOGNIZERS_H

14#define LLVM_LIB_TARGET_POWERPC_PPCHAZARDRECOGNIZERS_H

15

20

21namespace llvm {

22

23

24

28 unsigned CurSlots, CurBranches;

29

30 bool isLoadAfterStore(SUnit *SU);

31 bool isBCTRAfterSet(SUnit *SU);

32 bool mustComeFirst(const MCInstrDesc *MCID, unsigned &NSlots);

33public:

37 CurSlots(0), CurBranches(0) {}

38

45 void Reset() override;

47};

48

49

50

51

52

53

54

57

58 unsigned NumIssued;

59

60

61

62

63 bool HasCTRSet;

64

65

66

67

68

69

70

71 const Value *StoreValue[4];

72 int64_t StoreOffset[4];

74 unsigned NumStores;

75

76public:

81 void Reset() override;

82

83private:

84

85

86 void EndDispatchGroup();

87

88

89

91 bool &isFirst, bool &isSingle,bool &isCracked,

93

94 bool isLoadOfStoredAddress(uint64_t LoadSize, int64_t LoadOffset,

96};

97

98}

99

100#endif

101

static bool isLoad(int Opcode)

static bool isStore(int Opcode)

Itinerary data supplied by a subtarget to be used by a target.

Describe properties that are true of each instruction in the target description file.

HazardType getHazardType(SUnit *SU, int Stalls) override

getHazardType - Return the hazard type of emitting this node.

void AdvanceCycle() override

AdvanceCycle - This callback is invoked whenever the next top-down instruction to be scheduled cannot...

unsigned PreEmitNoops(SUnit *SU) override

PreEmitNoops - This callback is invoked prior to emitting an instruction.

void RecedeCycle() override

RecedeCycle - This callback is invoked whenever the next bottom-up instruction to be scheduled cannot...

bool ShouldPreferAnother(SUnit *SU) override

ShouldPreferAnother - This callback may be invoked if getHazardType returns NoHazard.

void EmitNoop() override

EmitNoop - This callback is invoked when a noop was added to the instruction stream.

PPCDispatchGroupSBHazardRecognizer(const InstrItineraryData *ItinData, const ScheduleDAG *DAG_)

Definition PPCHazardRecognizers.h:34

void Reset() override

Reset - This callback is invoked when a new block of instructions is about to be schedule.

void EmitInstruction(SUnit *SU) override

EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard stat...

void AdvanceCycle() override

AdvanceCycle - This callback is invoked whenever the next top-down instruction to be scheduled cannot...

PPCHazardRecognizer970(const ScheduleDAG &DAG)

HazardType getHazardType(SUnit *SU, int Stalls) override

getHazardType - We return hazard for any non-branch instruction that would terminate the dispatch gro...

void Reset() override

Reset - This callback is invoked when a new block of instructions is about to be schedule.

void EmitInstruction(SUnit *SU) override

EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard stat...

Scheduling unit. This is a node in the scheduling DAG.

ScheduleHazardRecognizer()=default

ScoreboardHazardRecognizer(const InstrItineraryData *II, const ScheduleDAG *DAG, const char *ParentDebugType="")

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

LLVM Value Representation.

This is an optimization pass for GlobalISel generic memory operations.