LLVM  4.0.0
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::coro::Shape Struct Reference

#include <CoroInternal.h>

Collaboration diagram for llvm::coro::Shape:
[legend]

Public Types

enum  {
  ResumeField, DestroyField, PromiseField, IndexField,
  LastKnownField = IndexField
}
 

Public Member Functions

IntegerTypegetIndexType () const
 
ConstantIntgetIndex (uint64_t Value) const
 
 Shape ()=default
 
 Shape (Function &F)
 
void buildFrom (Function &F)
 

Public Attributes

CoroBeginInstCoroBegin
 
SmallVector< CoroEndInst *, 4 > CoroEnds
 
SmallVector< CoroSizeInst *, 2 > CoroSizes
 
SmallVector< CoroSuspendInst *, 4 > CoroSuspends
 
StructTypeFrameTy
 
InstructionFramePtr
 
BasicBlockAllocaSpillBlock
 
SwitchInstResumeSwitch
 
AllocaInstPromiseAlloca
 
bool HasFinalSuspend
 

Detailed Description

Definition at line 67 of file CoroInternal.h.

Member Enumeration Documentation

anonymous enum
Enumerator
ResumeField 
DestroyField 
PromiseField 
IndexField 
LastKnownField 

Definition at line 74 of file CoroInternal.h.

Constructor & Destructor Documentation

llvm::coro::Shape::Shape ( )
default
llvm::coro::Shape::Shape ( Function F)
inlineexplicit

Definition at line 98 of file CoroInternal.h.

Member Function Documentation

void coro::Shape::buildFrom ( Function F)
ConstantInt* llvm::coro::Shape::getIndex ( uint64_t  Value) const
inline

Definition at line 93 of file CoroInternal.h.

References llvm::ConstantInt::get().

Referenced by createResumeEntryBlock().

IntegerType* llvm::coro::Shape::getIndexType ( ) const
inline

Definition at line 89 of file CoroInternal.h.

References assert().

Member Data Documentation

BasicBlock* llvm::coro::Shape::AllocaSpillBlock

Definition at line 84 of file CoroInternal.h.

Referenced by clear(), createClone(), and insertSpills().

CoroBeginInst* llvm::coro::Shape::CoroBegin
SmallVector<CoroEndInst *, 4> llvm::coro::Shape::CoroEnds

Definition at line 69 of file CoroInternal.h.

Referenced by llvm::coro::buildCoroutineFrame(), clear(), createClone(), and removeCoroEnds().

SmallVector<CoroSizeInst *, 2> llvm::coro::Shape::CoroSizes

Definition at line 70 of file CoroInternal.h.

Referenced by clear(), and replaceFrameSize().

SmallVector<CoroSuspendInst *, 4> llvm::coro::Shape::CoroSuspends
Instruction* llvm::coro::Shape::FramePtr
StructType* llvm::coro::Shape::FrameTy
bool llvm::coro::Shape::HasFinalSuspend

Definition at line 87 of file CoroInternal.h.

Referenced by clear(), createClone(), and handleFinalSuspend().

AllocaInst* llvm::coro::Shape::PromiseAlloca
SwitchInst* llvm::coro::Shape::ResumeSwitch

Definition at line 85 of file CoroInternal.h.

Referenced by clear(), createClone(), and createResumeEntryBlock().


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