A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/CGExprAgg_8cpp.html below:

clang: lib/CodeGen/CGExprAgg.cpp File Reference

#include "CGCXXABI.h"
#include "CGObjCRuntime.h"
#include "CGRecordLayout.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "ConstantEmitter.h"
#include "EHScopeStack.h"
#include "TargetInfo.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.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/Instruction.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"

Go to the source code of this file.

namespace   llvm   Diagnostic wrappers for TextAPI types for error reporting.
  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, const ASTContext &ctx)   Attempt to look through various unimportant expressions to find a cast of the given kind.
  static llvm::ValueEmitCompare (CGBuilderTy &Builder, CodeGenFunction &CGF, const BinaryOperator *E, llvm::Value *LHS, llvm::Value *RHS, CompareKind Kind, const char *NameSuffix="")   static bool  isBlockVarRef (const Expr *E)   Is the value of the given expression possibly a reference to or into a __block variable?
  static bool  castPreservesZero (const CastExpr *CE)   Determine whether the given cast kind is known to always convert values with all zero bits in their value representation to values with all zero bits in their value representation.
  static bool  isSimpleZero (const Expr *E, CodeGenFunction &CGF)   isSimpleZero - If emitting this value will obviously just cause a store of zero to memory, return true.
  static CharUnits  GetNumNonZeroBytesInInit (const Expr *E, CodeGenFunction &CGF)   GetNumNonZeroBytesInInit - Get an approximate count of the number of non-zero bytes that will be stored when outputting the initializer for the specified initializer expression.
  static void  CheckAggExprForMemSetUse (AggValueSlot &Slot, const Expr *E, CodeGenFunction &CGF)   CheckAggExprForMemSetUse - If the initializer is large and has a lot of zeros in it, emit a memset and avoid storing the individual zeros.
  ◆ CompareKind Enumerator CK_Less  CK_Greater  CK_Equal 

Definition at line 990 of file CGExprAgg.cpp.

◆ castPreservesZero() ◆ CheckAggExprForMemSetUse()

CheckAggExprForMemSetUse - If the initializer is large and has a lot of zeros in it, emit a memset and avoid storing the individual zeros.

Definition at line 2021 of file CGExprAgg.cpp.

References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateMemSet(), E, clang::CharUnits::fromQuantity(), clang::CodeGen::AggValueSlot::getAddress(), clang::Type::getAs(), clang::ASTContext::getBaseElementType(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenFunction::getLangOpts(), GetNumNonZeroBytesInInit(), clang::CodeGen::AggValueSlot::getPreferredSize(), clang::Expr::getType(), clang::CXXRecordDecl::hasUserDeclaredConstructor(), clang::CodeGen::CodeGenTypeCache::Int8Ty, clang::CodeGen::Address::isValid(), clang::CodeGen::AggValueSlot::isVolatile(), clang::CodeGen::AggValueSlot::isZeroed(), Loc, clang::CodeGen::AggValueSlot::setZeroed(), and clang::CodeGen::Address::withElementType().

◆ EmitCompare()

Definition at line 996 of file CGExprAgg.cpp.

References clang::CodeGen::CodeGenFunction::CGM, CK_Equal, CK_Greater, CK_Less, E, clang::CodeGen::CGCXXABI::EmitMemberPointerComparison(), clang::Type::getAs(), clang::CodeGen::CodeGenModule::getCXXABI(), clang::Expr::getType(), clang::Type::hasFloatingRepresentation(), clang::Type::hasSignedIntegerRepresentation(), clang::Type::isIntegralOrEnumerationType(), and clang::Type::isPointerType().

◆ findPeephole() ◆ GetNumNonZeroBytesInInit()

GetNumNonZeroBytesInInit - Get an approximate count of the number of non-zero bytes that will be stored when outputting the initializer for the specified initializer expression.

Definition at line 1959 of file CGExprAgg.cpp.

References E, clang::RecordDecl::fields(), clang::Type::getAs(), clang::CodeGen::CodeGenFunction::getContext(), clang::InitListExpr::getInit(), clang::InitListExpr::getNumInits(), GetNumNonZeroBytesInInit(), clang::TargetInfo::getPointerWidth(), clang::CodeGen::CodeGenFunction::getTarget(), clang::Expr::getType(), clang::CodeGen::CodeGenFunction::getTypes(), clang::ASTContext::getTypeSizeInChars(), clang::Expr::IgnoreParenNoopCasts(), isSimpleZero(), clang::InitListExpr::isTransparent(), clang::CodeGen::CodeGenTypes::isZeroInitializable(), clang::ASTContext::toCharUnitsFromBits(), and clang::CharUnits::Zero().

Referenced by CheckAggExprForMemSetUse(), and GetNumNonZeroBytesInInit().

◆ isBlockVarRef() static bool isBlockVarRef ( const ExprE ) static ◆ isSimpleZero()

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 1524 of file CGExprAgg.cpp.

References castPreservesZero(), E, clang::CodeGen::CodeGenFunction::getContext(), clang::Expr::getType(), clang::CodeGen::CodeGenFunction::getTypes(), clang::Expr::HasSideEffects(), clang::Expr::IgnoreParens(), clang::CodeGen::CodeGenTypes::isPointerZeroInitializable(), and clang::CodeGen::CodeGenTypes::isZeroInitializable().

Referenced by GetNumNonZeroBytesInInit().

◆ isTrivialFiller() static bool isTrivialFiller ( ExprE ) static

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4