#include "CGBlocks.h"
#include "CGCXXABI.h"
#include "CGCleanup.h"
#include "CGDebugInfo.h"
#include "CGOpenCLRuntime.h"
#include "CGOpenMPRuntime.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "ConstantEmitter.h"
#include "EHScopeStack.h"
#include "PatternInit.h"
#include "TargetInfo.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/Basic/CodeGenOptions.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/CodeGen/CGFunctionInfo.h"
#include "clang/Sema/Sema.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/Type.h"
#include <optional>
Go to the source code of this file.
static std::string getStaticDeclName (CodeGenModule &CGM, const VarDecl &D) static void EmitAutoVarWithLifetime (CodeGenFunction &CGF, const VarDecl &var, Address addr, Qualifiers::ObjCLifetime lifetime) EmitAutoVarWithLifetime - Does the setup required for an automatic variable with lifetime.EmitAutoVarWithLifetime - Does the setup required for an automatic variable with lifetime.
Definition at line 627 of file CGDecl.cpp.
References clang::CodeGen::CodeGenFunction::destroyARCStrongImprecise, clang::CodeGen::CodeGenFunction::destroyARCStrongPrecise, clang::CodeGen::CodeGenFunction::destroyARCWeak, clang::CodeGen::EHCleanup, clang::CodeGen::CodeGenFunction::getARCCleanupKind(), clang::CodeGen::NormalAndEHCleanup, clang::Qualifiers::OCL_Autoreleasing, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, clang::Qualifiers::OCL_Weak, and clang::CodeGen::CodeGenFunction::pushDestroy().
◆ emitPartialArrayDestroy() ◆ emitStoresForConstant()Definition at line 1168 of file CGDecl.cpp.
References createUnnamedGlobalForMemcpyFrom(), D, emitStoresForConstant(), emitStoresForInitAfterBZero(), clang::CharUnits::fromQuantity(), clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::CodeGenModule::getDataLayout(), clang::ASTContext::getLangOpts(), clang::CodeGen::CodeGenTypeCache::Int8Ty, clang::CodeGen::CodeGenTypeCache::IntPtrTy, Loc, clang::LangOptionsBase::Pattern, shouldSplitConstantStore(), shouldUseBZeroPlusStoresToInitialize(), and shouldUseMemSetToInitialize().
Referenced by emitStoresForConstant(), emitStoresForPatternInit(), and emitStoresForZeroInit().
◆ emitStoresForInitAfterBZero() ◆ emitStoresForPatternInit() ◆ emitStoresForZeroInit() ◆ getStaticDeclName() ◆ isAccessedBy() [1/2] ◆ isAccessedBy() [2/2] ◆ isCapturedBy() [1/2] ◆ isCapturedBy() [2/2]Determines whether the given __block variable is potentially captured by the given statement.
Definition at line 1730 of file CGDecl.cpp.
References E, and isCapturedBy().
◆ maxFakeUseAggregateSize() static uint64_t maxFakeUseAggregateSize ( const ASTContext & C ) staticReturn the maximum size of an aggregate for which we generate a fake use intrinsic when -fextend-variable-liveness is in effect.
Definition at line 1428 of file CGDecl.cpp.
References clang::C.
Referenced by shouldExtendLifetime().
◆ patternOrZeroFor() ◆ replaceUndef() ◆ shouldExtendLifetime() ◆ shouldSplitConstantStore() static bool shouldSplitConstantStore ( CodeGenModule & CGM, uint64_t GlobalByteSize ) static ◆ shouldUseBZeroPlusStoresToInitialize() static bool shouldUseBZeroPlusStoresToInitialize ( llvm::Constant * Init, uint64_t GlobalSize ) static ◆ shouldUseMemSetToInitialize() static llvm::Value * shouldUseMemSetToInitialize ( llvm::Constant * Init, uint64_t GlobalSize, const llvm::DataLayout & DL ) staticDecide whether we should use memset to initialize a local variable instead of using a memcpy from a constant global.
Assumes we've already decided to not user bzero. FIXME We could be more clever, as we are for bzero above, and generate memset followed by stores. It's unclear that's worth the effort.
Definition at line 995 of file CGDecl.cpp.
References clang::Init.
Referenced by emitStoresForConstant().
◆ tryEmitARCCopyWeakInit()Definition at line 695 of file CGDecl.cpp.
References clang::ast_matchers::castExpr, clang::CodeGen::CodeGenFunction::EmitARCCopyWeak(), clang::CodeGen::CodeGenFunction::EmitARCMoveWeak(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::LValue::getAddress(), clang::CodeGen::Address::getElementType(), clang::QualType::getObjCLifetime(), clang::Expr::getType(), clang::Expr::IgnoreParens(), clang::Expr::isLValue(), clang::Expr::isXValue(), clang::Qualifiers::OCL_Weak, and clang::CodeGen::Address::withElementType().
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