clang API Documentation

Functions
CGExprAgg.cpp File Reference
#include "CodeGenFunction.h"
#include "CGObjCRuntime.h"
#include "CodeGenModule.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/StmtVisitor.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Intrinsics.h"
Include dependency graph for CGExprAgg.cpp:

Go to the source code of this file.

Functions

static bool isTrivialFiller (Expr *E)
 Determine if E is a trivial array filler, that is, one that is equivalent to zero-initialization.
static ExprfindPeephole (Expr *op, CastKind kind)
static bool isBlockVarRef (const Expr *E)
static bool isSimpleZero (const Expr *E, CodeGenFunction &CGF)
static CharUnits GetNumNonZeroBytesInInit (const Expr *E, CodeGenFunction &CGF)
static void CheckAggExprForMemSetUse (AggValueSlot &Slot, const Expr *E, CodeGenFunction &CGF)

Function Documentation

static void CheckAggExprForMemSetUse ( AggValueSlot Slot,
const Expr E,
CodeGenFunction CGF 
) [static]
static Expr* findPeephole ( Expr op,
CastKind  kind 
) [static]

Attempt to look through various unimportant expressions to find a cast of the given kind.

Definition at line 550 of file CGExprAgg.cpp.

References clang::CK_NoOp, and clang::Expr::IgnoreParens().

static CharUnits GetNumNonZeroBytesInInit ( const Expr E,
CodeGenFunction CGF 
) [static]
static bool isBlockVarRef ( const Expr E) [static]

Is the value of the given expression possibly a reference to or into a __block variable?

Definition at line 778 of file CGExprAgg.cpp.

References clang::BO_Comma, clang::CK_LValueToRValue, clang::Decl::hasAttr(), and clang::Expr::IgnoreParens().

static bool isSimpleZero ( const Expr E,
CodeGenFunction CGF 
) [static]

isSimpleZero - If emitting this value will obviously just cause a store of zero to memory, return true. This can return false if uncertain, so it just handles simple cases.

Definition at line 1011 of file CGExprAgg.cpp.

References clang::CK_NullToPointer, clang::Expr::getType(), clang::CodeGen::CodeGenFunction::getTypes(), clang::Expr::IgnoreParens(), and clang::CodeGen::CodeGenTypes::isZeroInitializable().

Referenced by GetNumNonZeroBytesInInit().

static bool isTrivialFiller ( Expr E) [static]

Determine if E is a trivial array filler, that is, one that is equivalent to zero-initialization.

Definition at line 375 of file CGExprAgg.cpp.