LLVM 24.0.0git
llvm::coro::SwitchCloner Class Reference

#include "Transforms/Coroutines/CoroCloner.h"

Inheritance diagram for llvm::coro::SwitchCloner:
[legend]

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

Definition at line 128 of file CoroCloner.h.

Constructor & Destructor Documentation

◆ SwitchCloner()

llvm::coro::SwitchCloner::SwitchCloner ( Function & OrigF,
const Twine & Suffix,
coro::Shape & Shape,
CloneKind FKind,
TargetTransformInfo & TTI )
inlineprotected

Member Function Documentation

◆ create()

void coro::SwitchCloner::create ( )
overrideprotectedvirtual

◆ createClone()

Function * llvm::coro::SwitchCloner::createClone ( Function & OrigF,
const Twine & Suffix,
coro::Shape & Shape,
CloneKind FKind,
TargetTransformInfo & TTI )
inlinestatic

The documentation for this class was generated from the following files: