struct Shape

Declaration

struct Shape { /* full declaration omitted */ };

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:73

Member Variables

public llvm::CoroBeginInst* CoroBegin
public SmallVector<llvm::AnyCoroEndInst*, 4> CoroEnds
public SmallVector<llvm::CoroSizeInst*, 2> CoroSizes
public SmallVector<llvm::CoroAlignInst*, 2> CoroAligns
public SmallVector<llvm::AnyCoroSuspendInst*, 4> CoroSuspends
public SmallVector<llvm::CallInst*, 2> SwiftErrorOps
public coro::ABI ABI
public llvm::StructType* FrameTy
public llvm::Align FrameAlign
public uint64_t FrameSize
public llvm::Value* FramePtr
public llvm::BasicBlock* AllocaSpillBlock
public bool OptimizeFrame
This would only be true if optimization are enabled.
public anonymous struct / union

Method Overview

Methods

Shape(llvm::Function& F,
      bool OptimizeFrame = false)

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:256

Parameters

llvm::Function& F
bool OptimizeFrame = false

Shape()

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:255

void buildFrom(llvm::Function& F)

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:260

Parameters

llvm::Function& F

llvm::Value* emitAlloc(IRBuilder<>& Builder,
                       llvm::Value* Size,
                       llvm::CallGraph* CG) const

Description

Allocate memory according to the rules of the active lowering.

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:248

Parameters

IRBuilder<>& Builder
llvm::Value* Size
llvm::CallGraph* CG
- if non-null, will be updated for the new call

void emitDealloc(IRBuilder<>& Builder,
                 llvm::Value* Ptr,
                 llvm::CallGraph* CG) const

Description

Deallocate memory according to the rules of the active lowering.

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:253

Parameters

IRBuilder<>& Builder
llvm::Value* Ptr
llvm::CallGraph* CG
- if non-null, will be updated for the new call

llvm::CoroIdAsyncInst* getAsyncCoroId() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:156

llvm::ConstantInt* getIndex(uint64_t Value) const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:171

Parameters

uint64_t Value

llvm::IntegerType* getIndexType() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:166

llvm::Instruction* getInsertPtAfterFramePtr()
    const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:239

llvm::AllocaInst* getPromiseAlloca() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:233

CallingConv::ID getResumeFunctionCC() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:219

llvm::FunctionType* getResumeFunctionType() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:181

llvm::AnyCoroIdRetconInst* getRetconCoroId() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:150

ArrayRef<llvm::Type*> getRetconResultTypes() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:197

ArrayRef<llvm::Type*> getRetconResumeTypes() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:210

llvm::CoroIdInst* getSwitchCoroId() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:145

unsigned int getSwitchIndexField() const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:161

llvm::PointerType* getSwitchResumePointerType()
    const

Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:175