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
- public Shape(llvm::Function & F, bool OptimizeFrame = false)
- public Shape()
- public void buildFrom(llvm::Function & F)
- public llvm::Value * emitAlloc(IRBuilder<> & Builder, llvm::Value * Size, llvm::CallGraph * CG) const
- public void emitDealloc(IRBuilder<> & Builder, llvm::Value * Ptr, llvm::CallGraph * CG) const
- public llvm::CoroIdAsyncInst * getAsyncCoroId() const
- public llvm::ConstantInt * getIndex(uint64_t Value) const
- public llvm::IntegerType * getIndexType() const
- public llvm::Instruction * getInsertPtAfterFramePtr() const
- public llvm::AllocaInst * getPromiseAlloca() const
- public CallingConv::ID getResumeFunctionCC() const
- public llvm::FunctionType * getResumeFunctionType() const
- public llvm::AnyCoroIdRetconInst * getRetconCoroId() const
- public ArrayRef<llvm::Type *> getRetconResultTypes() const
- public ArrayRef<llvm::Type *> getRetconResumeTypes() const
- public llvm::CoroIdInst * getSwitchCoroId() const
- public unsigned int getSwitchIndexField() const
- public llvm::PointerType * getSwitchResumePointerType() const
Methods
¶Shape(llvm::Function& F,
bool OptimizeFrame = false)
Shape(llvm::Function& F,
bool OptimizeFrame = false)
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:256
Parameters
- llvm::Function& F
- bool OptimizeFrame = false
¶Shape()
Shape()
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:255
¶void buildFrom(llvm::Function& F)
void buildFrom(llvm::Function& F)
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:260
Parameters
¶llvm::Value* emitAlloc(IRBuilder<>& Builder,
llvm::Value* Size,
llvm::CallGraph* CG) const
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
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
llvm::CoroIdAsyncInst* getAsyncCoroId() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:156
¶llvm::ConstantInt* getIndex(uint64_t Value) const
llvm::ConstantInt* getIndex(uint64_t Value) const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:171
Parameters
- uint64_t Value
¶llvm::IntegerType* getIndexType() const
llvm::IntegerType* getIndexType() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:166
¶llvm::Instruction* getInsertPtAfterFramePtr()
const
llvm::Instruction* getInsertPtAfterFramePtr()
const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:239
¶llvm::AllocaInst* getPromiseAlloca() const
llvm::AllocaInst* getPromiseAlloca() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:233
¶CallingConv::ID getResumeFunctionCC() const
CallingConv::ID getResumeFunctionCC() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:219
¶llvm::FunctionType* getResumeFunctionType() const
llvm::FunctionType* getResumeFunctionType() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:181
¶llvm::AnyCoroIdRetconInst* getRetconCoroId() const
llvm::AnyCoroIdRetconInst* getRetconCoroId() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:150
¶ArrayRef<llvm::Type*> getRetconResultTypes() const
ArrayRef<llvm::Type*> getRetconResultTypes() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:197
¶ArrayRef<llvm::Type*> getRetconResumeTypes() const
ArrayRef<llvm::Type*> getRetconResumeTypes() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:210
¶llvm::CoroIdInst* getSwitchCoroId() const
llvm::CoroIdInst* getSwitchCoroId() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:145
¶unsigned int getSwitchIndexField() const
unsigned int getSwitchIndexField() const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:161
¶llvm::PointerType* getSwitchResumePointerType()
const
llvm::PointerType* getSwitchResumePointerType()
const
Declared at: llvm/lib/Transforms/Coroutines/CoroInternal.h:175