LLVM: include/llvm/Transforms/Coroutines/ABI.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_TRANSFORMS_COROUTINES_ABI_H

16#define LLVM_TRANSFORMS_COROUTINES_ABI_H

17

23

24namespace llvm {

25

27

29

30

31

32

33

34

35

36

37

38

39

40

42public:

47

48

49 virtual void init() = 0;

50

51

53

54

58

61

62

63

65};

66

68public:

72

73 void init() override;

74

78};

79

81public:

85

86 void init() override;

87

91};

92

94public:

98

99 void init() override;

100

104};

105

106}

107

108}

109

110#endif

This pass exposes codegen information to IR-level passes.

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

This pass provides access to the codegen interfaces that are needed for IR-level transformations.

AnyRetconABI(Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable)

Definition ABI.h:95

AsyncABI(Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable)

Definition ABI.h:82

std::function< bool(Instruction &I)> IsMaterializable

Definition ABI.h:64

Function & F

Definition ABI.h:59

virtual void splitCoroutine(Function &F, coro::Shape &Shape, SmallVectorImpl< Function * > &Clones, TargetTransformInfo &TTI)=0

BaseABI(Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable)

Definition ABI.h:43

virtual void buildCoroutineFrame(bool OptimizeFrame)

virtual ~BaseABI()=default

coro::Shape & Shape

Definition ABI.h:60

SwitchABI(Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable)

Definition ABI.h:69

This is an optimization pass for GlobalISel generic memory operations.

OutputIt move(R &&Range, OutputIt Out)

Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.

Implement std::hash so that hash_code can be used in STL containers.