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
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.