LLVM: llvm::coro::SwitchCloner Class Reference (original) (raw)
#include "[Transforms/Coroutines/CoroCloner.h](CoroCloner%5F8h%5Fsource.html)"
Inheritance diagram for llvm::coro::SwitchCloner:
| Static Public Member Functions | |
|---|---|
| static Function * | createClone (Function &OrigF, const Twine &Suffix, coro::Shape &Shape, CloneKind FKind, TargetTransformInfo &TTI) |
| Create a clone for a switch lowering. | |
| Static Public Member Functions inherited from llvm::coro::BaseCloner | |
| static Function * | createClone (Function &OrigF, const Twine &Suffix, coro::Shape &Shape, Function *NewF, AnyCoroSuspendInst *ActiveSuspend, TargetTransformInfo &TTI) |
| Create a clone for a continuation lowering. |
| Protected Member Functions | |
|---|---|
| SwitchCloner (Function &OrigF, const Twine &Suffix, coro::Shape &Shape, CloneKind FKind, TargetTransformInfo &TTI) | |
| Create a cloner for a switch lowering. | |
| void | create () override |
| Clone the body of the original function into a resume function of some sort. | |
| Protected Member Functions inherited from llvm::coro::BaseCloner | |
| BaseCloner (Function &OrigF, const Twine &Suffix, coro::Shape &Shape, Function *NewF, AnyCoroSuspendInst *ActiveSuspend, TargetTransformInfo &TTI) | |
| Create a cloner for a continuation lowering. | |
| bool | isSwitchDestroyFunction () |
| void | replaceEntryBlock () |
| Value * | deriveNewFramePointer () |
| Derive the value of the new frame pointer. | |
| void | replaceRetconOrAsyncSuspendUses () |
| Replace uses of the active llvm.coro.suspend.retcon/async call with the arguments to the continuation function. | |
| void | replaceCoroSuspends () |
| void | replaceCoroEnds () |
| void | replaceCoroIsInRamp () |
| void | replaceSwiftErrorOps () |
| void | salvageDebugInfo () |
| void | handleFinalSuspend () |
| Additional Inherited Members | |
|---|---|
| Public Member Functions inherited from llvm::coro::BaseCloner | |
| BaseCloner (Function &OrigF, const Twine &Suffix, coro::Shape &Shape, CloneKind FKind, TargetTransformInfo &TTI) | |
| virtual | ~BaseCloner ()=default |
| Function * | getFunction () const |
| Protected Attributes inherited from llvm::coro::BaseCloner | |
| Function & | OrigF |
| const Twine & | Suffix |
| coro::Shape & | Shape |
| CloneKind | FKind |
| IRBuilder | Builder |
| TargetTransformInfo & | TTI |
| ValueToValueMapTy | VMap |
| Function * | NewF = nullptr |
| Value * | NewFramePtr = nullptr |
| AnyCoroSuspendInst * | ActiveSuspend = nullptr |
| The active suspend instruction; meaningful only for continuation and async ABIs. |
Detailed Description
Constructor & Destructor Documentation
Member Function Documentation
◆ create()
| void coro::SwitchCloner::create ( ) | overrideprotectedvirtual |
|---|
Clone the body of the original function into a resume function of some sort.
FIXME: Is it really good to add the NoAlias attribute?
Reimplemented from llvm::coro::BaseCloner.
Definition at line 1090 of file CoroSplit.cpp.
References llvm::coro::BaseCloner::ActiveSuspend, llvm::cast(), llvm::coro::BaseCloner::create(), createCloneDeclaration(), llvm::coro::BaseCloner::FKind, llvm::coro::BaseCloner::NewF, llvm::coro::BaseCloner::OrigF, llvm::coro::replaceCoroFree(), llvm::coro::BaseCloner::Shape, llvm::coro::BaseCloner::Suffix, llvm::coro::SwitchCleanup, and llvm::coro::BaseCloner::VMap.
Referenced by createClone().
◆ createClone()
The documentation for this class was generated from the following files:
- lib/Transforms/Coroutines/CoroCloner.h
- lib/Transforms/Coroutines/CoroSplit.cpp