|
LLVM
4.0.0
|
#include <CoroInternal.h>
Public Types | |
| enum | { ResumeField, DestroyField, PromiseField, IndexField, LastKnownField = IndexField } |
Public Member Functions | |
| IntegerType * | getIndexType () const |
| ConstantInt * | getIndex (uint64_t Value) const |
| Shape ()=default | |
| Shape (Function &F) | |
| void | buildFrom (Function &F) |
Public Attributes | |
| CoroBeginInst * | CoroBegin |
| SmallVector< CoroEndInst *, 4 > | CoroEnds |
| SmallVector< CoroSizeInst *, 2 > | CoroSizes |
| SmallVector< CoroSuspendInst *, 4 > | CoroSuspends |
| StructType * | FrameTy |
| Instruction * | FramePtr |
| BasicBlock * | AllocaSpillBlock |
| SwitchInst * | ResumeSwitch |
| AllocaInst * | PromiseAlloca |
| bool | HasFinalSuspend |
Definition at line 67 of file CoroInternal.h.
| anonymous enum |
| Enumerator | |
|---|---|
| ResumeField | |
| DestroyField | |
| PromiseField | |
| IndexField | |
| LastKnownField | |
Definition at line 74 of file CoroInternal.h.
|
default |
|
inlineexplicit |
Definition at line 98 of file CoroInternal.h.
| void coro::Shape::buildFrom | ( | Function & | F | ) |
Definition at line 217 of file Coroutines.cpp.
References llvm::changeToUnreachable(), clear(), createCoroSave(), llvm::AttributeSet::FunctionIndex, llvm::UndefValue::get(), llvm::Function::getContext(), llvm::Type::getInt8PtrTy(), I, llvm::instructions(), llvm::NoAlias, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::report_fatal_error(), llvm::AttributeSet::ReturnIndex, std::swap(), and llvm::RegState::Undef.
|
inline |
Definition at line 93 of file CoroInternal.h.
References llvm::ConstantInt::get().
Referenced by createResumeEntryBlock().
|
inline |
Definition at line 89 of file CoroInternal.h.
References assert().
| BasicBlock* llvm::coro::Shape::AllocaSpillBlock |
Definition at line 84 of file CoroInternal.h.
Referenced by clear(), createClone(), and insertSpills().
| CoroBeginInst* llvm::coro::Shape::CoroBegin |
Definition at line 68 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), clear(), createClone(), insertSpills(), simplifySuspendPoints(), splitCoroutine(), and updateCoroFrame().
| 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 |
Definition at line 71 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), buildFrameType(), clear(), createClone(), createResumeEntryBlock(), simplifySuspendPoints(), and splitCoroutine().
| Instruction* llvm::coro::Shape::FramePtr |
Definition at line 83 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), clear(), createClone(), createResumeEntryBlock(), and updateCoroFrame().
| StructType* llvm::coro::Shape::FrameTy |
Definition at line 82 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), clear(), createClone(), createResumeEntryBlock(), handleFinalSuspend(), insertSpills(), replaceFrameSize(), splitCoroutine(), and updateCoroFrame().
| bool llvm::coro::Shape::HasFinalSuspend |
Definition at line 87 of file CoroInternal.h.
Referenced by clear(), createClone(), and handleFinalSuspend().
| AllocaInst* llvm::coro::Shape::PromiseAlloca |
Definition at line 86 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), buildFrameType(), clear(), and insertSpills().
| SwitchInst* llvm::coro::Shape::ResumeSwitch |
Definition at line 85 of file CoroInternal.h.
Referenced by clear(), createClone(), and createResumeEntryBlock().
1.8.6