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

#include "Transforms/Coroutines/CoroInternal.h"

Collaboration diagram for llvm::coro::Shape:
Collaboration graph
[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

anonymous enum
Enumerator
ResumeField 
DestroyField 
PromiseField 
IndexField 
LastKnownField 

Definition at line 74 of file CoroInternal.h.

Constructor & Destructor Documentation

◆ Shape() [1/2]

llvm::coro::Shape::Shape ( )
default

◆ Shape() [2/2]

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

Definition at line 98 of file CoroInternal.h.

References llvm::coro::buildCoroutineFrame(), and F().

Member Function Documentation

◆ buildFrom()

void coro::Shape::buildFrom ( Function F)

◆ getIndex()

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().

◆ getIndexType()

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

Definition at line 89 of file CoroInternal.h.

References assert(), and llvm::StructType::getElementType().

Member Data Documentation

◆ AllocaSpillBlock

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

Definition at line 84 of file CoroInternal.h.

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

◆ CoroBegin

CoroBeginInst* llvm::coro::Shape::CoroBegin

◆ CoroEnds

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

◆ CoroSizes

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

Definition at line 70 of file CoroInternal.h.

Referenced by clear(), and replaceFrameSize().

◆ CoroSuspends

SmallVector<CoroSuspendInst *, 4> llvm::coro::Shape::CoroSuspends

◆ FramePtr

Instruction* llvm::coro::Shape::FramePtr

◆ FrameTy

StructType* llvm::coro::Shape::FrameTy

◆ HasFinalSuspend

bool llvm::coro::Shape::HasFinalSuspend

Definition at line 87 of file CoroInternal.h.

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

◆ PromiseAlloca

AllocaInst* llvm::coro::Shape::PromiseAlloca

◆ ResumeSwitch

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: