LLVM: include/llvm/CodeGen/LoopTraversal.h Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18#ifndef LLVM_CODEGEN_LOOPTRAVERSAL_H

19#define LLVM_CODEGEN_LOOPTRAVERSAL_H

20

22

23namespace llvm {

24

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

66private:

67 struct MBBInfo {

68

69 bool PrimaryCompleted = false;

70

71

72 unsigned IncomingProcessed = 0;

73

74

75 unsigned PrimaryIncoming = 0;

76

77

78 unsigned IncomingCompleted = 0;

79

80 MBBInfo() = default;

81 };

83

84 MBBInfoMap MBBInfos;

85

86public:

102

103

104

107

108private:

109

111};

112

113}

114

115#endif

This file defines the SmallVector class.

TraversalOrder traverse(MachineFunction &MF)

SmallVector< TraversedMBBInfo, 4 > TraversalOrder

Identifies basic blocks that are part of loops and should to be visited twice and returns efficient t...

Definition LoopTraversal.h:105

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

This is an optimization pass for GlobalISel generic memory operations.

MachineBasicBlock * MBB

The basic block.

Definition LoopTraversal.h:89

bool IsDone

True if the block that is ready for its final round of processing.

Definition LoopTraversal.h:95

TraversedMBBInfo(MachineBasicBlock *BB=nullptr, bool Primary=true, bool Done=true)

Definition LoopTraversal.h:97

bool PrimaryPass

True if this is the first time we process the basic block.

Definition LoopTraversal.h:92