LLVM: include/llvm/Transforms/Utils/ControlFlowUtils.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_TRANSFORMS_UTILS_CONTROLFLOWUTILS_H

14#define LLVM_TRANSFORMS_UTILS_CONTROLFLOWUTILS_H

15

18

19namespace llvm {

20

22class DomTreeUpdater;

23

24

25

26

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

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

102

105 };

106

109 assert(Succ0 || Succ1);

110 Branches.emplace_back(BB, Succ0, Succ1);

111 }

112

116 std::optional MaxControlFlowBooleans = std::nullopt);

117

119};

120

121}

122

123#endif

assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())

This file defines the SmallVector class.

LLVM Basic Block Representation.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

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

StringRef - Represent a constant reference to a string, i.e.

@ BasicBlock

Various leaf nodes.

This is an optimization pass for GlobalISel generic memory operations.

BranchDescriptor(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1)

Given a set of branch descriptors [BB, Succ0, Succ1], create a "hub" such that the control flow from ...

SmallVector< BranchDescriptor > Branches

void addBranch(BasicBlock *BB, BasicBlock *Succ0, BasicBlock *Succ1)