|
LLVM
8.0.1
|
#include "Transforms/Coroutines/CoroInternal.h"

Public Types | |
| enum | { ResumeField, DestroyField, PromiseField, 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 | |
Definition at line 74 of file CoroInternal.h.
|
default |
|
inlineexplicit |
Definition at line 97 of file CoroInternal.h.
References llvm::coro::buildCoroutineFrame(), and F().
| void coro::Shape::buildFrom | ( | Function & | F | ) |
Definition at line 238 of file Coroutines.cpp.
References llvm::changeToUnreachable(), clear(), llvm::Intrinsic::coro_begin, llvm::Intrinsic::coro_end, llvm::Intrinsic::coro_frame, llvm::Intrinsic::coro_save, llvm::Intrinsic::coro_size, llvm::Intrinsic::coro_suspend, createCoroSave(), llvm::AttributeList::FunctionIndex, llvm::UndefValue::get(), llvm::Function::getContext(), llvm::Type::getInt8PtrTy(), I, llvm::instructions(), llvm::Attribute::NoAlias, llvm::Attribute::NoDuplicate, llvm::Attribute::NonNull, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::report_fatal_error(), llvm::AttributeList::ReturnIndex, std::swap(), and llvm::RegState::Undef.
|
inline |
Definition at line 92 of file CoroInternal.h.
References llvm::ConstantInt::get().
Referenced by createResumeEntryBlock().
|
inline |
Definition at line 88 of file CoroInternal.h.
References assert(), and llvm::StructType::getElementType().
| BasicBlock* llvm::coro::Shape::AllocaSpillBlock |
Definition at line 83 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(), removeCoroEnds(), and replaceUnwindCoroEnds().
| 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 82 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), clear(), createClone(), createResumeEntryBlock(), and updateCoroFrame().
| StructType* llvm::coro::Shape::FrameTy |
Definition at line 81 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 86 of file CoroInternal.h.
Referenced by clear(), createClone(), and handleFinalSuspend().
| AllocaInst* llvm::coro::Shape::PromiseAlloca |
Definition at line 85 of file CoroInternal.h.
Referenced by llvm::coro::buildCoroutineFrame(), buildFrameType(), clear(), and insertSpills().
| SwitchInst* llvm::coro::Shape::ResumeSwitch |
Definition at line 84 of file CoroInternal.h.
Referenced by clear(), createClone(), and createResumeEntryBlock().
1.8.13