clang  6.0.0svn
Classes | Enumerations | Functions
CGCoroutine.cpp File Reference
#include "CGCleanup.h"
#include "CodeGenFunction.h"
#include "llvm/ADT/ScopeExit.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtVisitor.h"
Include dependency graph for CGCoroutine.cpp:

Go to the source code of this file.

Classes

struct  clang::CodeGen::CGCoroData
 

Enumerations

enum  AwaitKind
 

Functions

static void createCoroData (CodeGenFunction &CGF, CodeGenFunction::CGCoroInfo &CurCoro, llvm::CallInst *CoroId, CallExpr const *CoroIdExpr=nullptr)
 
static SmallString< 32 > buildSuspendPrefixStr (CGCoroData &Coro, AwaitKind Kind)
 
static LValueOrRValue emitSuspendExpression (CodeGenFunction &CGF, CGCoroData &Coro, CoroutineSuspendExpr const &S, AwaitKind Kind, AggValueSlot aggSlot, bool ignoreResult, bool forLValue)
 
static QualType getCoroutineSuspendExprReturnType (const ASTContext &Ctx, const CoroutineSuspendExpr *E)
 
static SmallVector< llvm::OperandBundleDef, 1 > getBundlesForCoroEnd (CodeGenFunction &CGF)
 
static void emitBodyAndFallthrough (CodeGenFunction &CGF, const CoroutineBodyStmt &S, Stmt *Body)
 

Enumeration Type Documentation

◆ AwaitKind

enum AwaitKind
strong

Definition at line 27 of file CGCoroutine.cpp.

Function Documentation

◆ buildSuspendPrefixStr()

static SmallString<32> buildSuspendPrefixStr ( CGCoroData Coro,
AwaitKind  Kind 
)
static

◆ createCoroData()

static void createCoroData ( CodeGenFunction CGF,
CodeGenFunction::CGCoroInfo CurCoro,
llvm::CallInst *  CoroId,
CallExpr const *  CoroIdExpr = nullptr 
)
static

◆ emitBodyAndFallthrough()

static void emitBodyAndFallthrough ( CodeGenFunction CGF,
const CoroutineBodyStmt S,
Stmt Body 
)
static

Definition at line 492 of file CGCoroutine.cpp.

◆ emitSuspendExpression()

static LValueOrRValue emitSuspendExpression ( CodeGenFunction CGF,
CGCoroData Coro,
CoroutineSuspendExpr const &  S,
AwaitKind  Kind,
AggValueSlot  aggSlot,
bool  ignoreResult,
bool  forLValue 
)
static

Definition at line 157 of file CGCoroutine.cpp.

◆ getBundlesForCoroEnd()

static SmallVector<llvm::OperandBundleDef, 1> getBundlesForCoroEnd ( CodeGenFunction CGF)
static

◆ getCoroutineSuspendExprReturnType()

static QualType getCoroutineSuspendExprReturnType ( const ASTContext Ctx,
const CoroutineSuspendExpr E 
)
static

Definition at line 248 of file CGCoroutine.cpp.