#include <CodeGenRoutine.h>
Public Member Functions | |
CodeGenRoutine (CGContext &CGC, SRInfo *info) | |
CodeGen & | getCodeGen () |
Returns the code generator. | |
CGContext & | getCGC () |
Returns the code generator context. | |
SRInfo * | getSRInfo () |
Returns the SRInfo object corresponding to the subroutine being generated. | |
SRFrame * | getSRFrame () |
llvm::Value * | getImplicitContext () const |
void | emit () |
CValue | emitValue (Expr *expr) |
CValue | emitReference (Expr *expr) |
CValue | emitArrayExpr (Expr *expr, llvm::Value *dst, bool genTmp) |
CValue | emitRecordExpr (Expr *expr, llvm::Value *dst, bool genTmp) |
CValue | emitCompositeExpr (Expr *expr, llvm::Value *dst, bool genTmp) |
void | emitStmt (Stmt *stmt) |
CValue | emitSimpleCall (FunctionCallExpr *expr) |
CValue | emitFunctionCall (FunctionCallExpr *expr) |
CValue | emitCompositeCall (FunctionCallExpr *expr, llvm::Value *dst) |
CValue | emitVStackCall (FunctionCallExpr *expr) |
void | emitArrayCopy (llvm::Value *source, llvm::Value *destination, ArrayType *arrTy) |
void | emitArrayCopy (llvm::Value *source, llvm::Value *destination, llvm::Value *length, const llvm::Type *componentTy) |
CValue | emitIndexedArrayRef (IndexedArrayExpr *expr) |
CValue | emitSelectedRef (SelectedExpr *expr) |
Type * | resolveType (Type *type) |
Type * | resolveType (Expr *expr) |
void | emitNullAccessCheck (llvm::Value *pointer, Location loc) |
Emits a null check for the given pointer value. |
Definition at line 33 of file CodeGenRoutine.h.
Definition at line 32 of file CodeGenRoutine.cpp.
void CodeGenRoutine::emit | ( | ) |
Definition at line 41 of file CodeGenRoutine.cpp.
void CodeGenRoutine::emitArrayCopy | ( | llvm::Value * | source, | |
llvm::Value * | destination, | |||
llvm::Value * | length, | |||
const llvm::Type * | componentTy | |||
) |
Definition at line 1315 of file CodeGenAgg.cpp.
void CodeGenRoutine::emitArrayCopy | ( | llvm::Value * | source, | |
llvm::Value * | destination, | |||
ArrayType * | arrTy | |||
) |
Definition at line 1284 of file CodeGenAgg.cpp.
Definition at line 1340 of file CodeGenAgg.cpp.
CValue CodeGenRoutine::emitCompositeCall | ( | FunctionCallExpr * | expr, | |
llvm::Value * | dst | |||
) |
Emits a function call using the sret calling convention.
call | The function call to emit. This must be a function returning a constrained aggregate type. | |
dst | A pointer to storage capable of holding the result of this call. If dst is null then a temporary is allocated. |
dst
or the allocated temporary. Definition at line 931 of file CodeGenCall.cpp.
Definition at line 1353 of file CodeGenAgg.cpp.
CValue CodeGenRoutine::emitFunctionCall | ( | FunctionCallExpr * | expr | ) |
Definition at line 915 of file CodeGenCall.cpp.
CValue CodeGenRoutine::emitIndexedArrayRef | ( | IndexedArrayExpr * | expr | ) |
Definition at line 120 of file CodeGenExpr.cpp.
void CodeGenRoutine::emitNullAccessCheck | ( | llvm::Value * | pointer, | |
Location | loc | |||
) |
Emits a null check for the given pointer value.
Definition at line 429 of file CodeGenExpr.cpp.
Definition at line 1346 of file CodeGenAgg.cpp.
Definition at line 143 of file CodeGenRoutine.cpp.
CValue CodeGenRoutine::emitSelectedRef | ( | SelectedExpr * | expr | ) |
Definition at line 228 of file CodeGenExpr.cpp.
CValue CodeGenRoutine::emitSimpleCall | ( | FunctionCallExpr * | expr | ) |
Definition at line 925 of file CodeGenCall.cpp.
void CodeGenRoutine::emitStmt | ( | Stmt * | stmt | ) |
Definition at line 27 of file CodeGenStmt.cpp.
Definition at line 167 of file CodeGenRoutine.cpp.
CValue CodeGenRoutine::emitVStackCall | ( | FunctionCallExpr * | expr | ) |
Definition at line 938 of file CodeGenCall.cpp.
CGContext& comma::CodeGenRoutine::getCGC | ( | ) | [inline] |
Returns the code generator context.
Definition at line 56 of file CodeGenRoutine.h.
CodeGen& comma::CodeGenRoutine::getCodeGen | ( | ) | [inline] |
Returns the code generator.
Definition at line 53 of file CodeGenRoutine.h.
llvm::Value* comma::CodeGenRoutine::getImplicitContext | ( | ) | const [inline] |
Definition at line 66 of file CodeGenRoutine.h.
SRFrame* comma::CodeGenRoutine::getSRFrame | ( | ) | [inline] |
Returns the SRFrame object corresponding to the subroutine being generated.
Definition at line 64 of file CodeGenRoutine.h.
SRInfo* comma::CodeGenRoutine::getSRInfo | ( | ) | [inline] |
Returns the SRInfo object corresponding to the subroutine being generated.
Definition at line 60 of file CodeGenRoutine.h.
Definition at line 109 of file CodeGenRoutine.h.
Definition at line 283 of file CodeGenRoutine.cpp.