clang 22.0.0git
|
#include "ABIInfo.h"
#include "CGCXXABI.h"
#include "CGCleanup.h"
#include "CGDebugInfo.h"
#include "CGVTables.h"
#include "CodeGenModule.h"
#include "CodeGenTypes.h"
#include "TargetInfo.h"
#include "clang/AST/Attr.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/VTableBuilder.h"
#include "clang/CodeGen/ConstantInitBuilder.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/IR/Intrinsics.h"
Go to the source code of this file.
Functions | |
static llvm::CallBase * | emitRTtypeidCall (CodeGenFunction &CGF, llvm::Value *Argument) |
static bool | isDeletingDtor (GlobalDecl GD) |
static bool | isTrivialForMSVC (const CXXRecordDecl *RD, QualType Ty, CodeGenModule &CGM) |
static bool | hasDefaultCXXMethodCC (ASTContext &Context, const CXXMethodDecl *MD) |
static void | mangleVFTableName (MicrosoftMangleContext &MangleContext, const CXXRecordDecl *RD, const VPtrInfo &VFPtr, SmallString< 256 > &Name) |
static void | emitGlobalDtorWithTLRegDtor (CodeGenFunction &CGF, const VarDecl &VD, llvm::FunctionCallee Dtor, llvm::Constant *Addr) |
static llvm::GlobalValue * | getTlsGuardVar (CodeGenModule &CGM) |
static llvm::FunctionCallee | getDynTlsOnDemandInitFn (CodeGenModule &CGM) |
static void | emitTlsGuardCheck (CodeGenFunction &CGF, llvm::GlobalValue *TlsGuard, llvm::BasicBlock *DynInitBB, llvm::BasicBlock *ContinueBB) |
static void | emitDynamicTlsInitializationCall (CodeGenFunction &CGF, llvm::GlobalValue *TlsGuard, llvm::BasicBlock *ContinueBB) |
static void | emitDynamicTlsInitialization (CodeGenFunction &CGF) |
static ConstantAddress | getInitThreadEpochPtr (CodeGenModule &CGM) |
static llvm::FunctionCallee | getInitThreadHeaderFn (CodeGenModule &CGM) |
static llvm::FunctionCallee | getInitThreadFooterFn (CodeGenModule &CGM) |
static llvm::FunctionCallee | getInitThreadAbortFn (CodeGenModule &CGM) |
static llvm::GlobalVariable * | getTypeInfoVTable (CodeGenModule &CGM) |
static void | serializeClassHierarchy (SmallVectorImpl< MSRTTIClass > &Classes, const CXXRecordDecl *RD) |
Recursively serializes a class hierarchy in pre-order depth first order. | |
static void | detectAmbiguousBases (SmallVectorImpl< MSRTTIClass > &Classes) |
Find ambiguity among base classes. | |
static QualType | decomposeTypeForEH (ASTContext &Context, QualType T, bool &IsConst, bool &IsVolatile, bool &IsUnaligned) |
|
static |
Definition at line 3942 of file MicrosoftCXXABI.cpp.
References clang::QualType::getQualifiers(), clang::QualType::getUnqualifiedType(), clang::Qualifiers::hasUnaligned(), clang::QualType::isConstQualified(), clang::QualType::isNull(), clang::QualType::isVolatileQualified(), and clang::T.
|
static |
Find ambiguity among base classes.
Definition at line 3739 of file MicrosoftCXXABI.cpp.
|
static |
Definition at line 2509 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::createBasicBlock(), clang::CodeGen::CodeGenFunction::CurFn, emitDynamicTlsInitializationCall(), emitTlsGuardCheck(), and getTlsGuardVar().
|
static |
Definition at line 2497 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, getDynTlsOnDemandInitFn(), and clang::Initializer.
Referenced by emitDynamicTlsInitialization().
|
static |
Definition at line 2370 of file MicrosoftCXXABI.cpp.
References clang::Addr, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::createAtExitStub(), clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenFunction::EmitNounwindRuntimeCall(), and clang::CodeGen::CodeGenTypeCache::IntTy.
|
static |
|
static |
Definition at line 2487 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateLoad(), clang::CodeGen::CodeGenTypeCache::Int8Ty, and clang::CharUnits::One().
Referenced by emitDynamicTlsInitialization().
|
static |
Definition at line 2473 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), and clang::CodeGen::CodeGenModule::getLLVMContext().
Referenced by emitDynamicTlsInitializationCall().
|
static |
Definition at line 2586 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::UnqualPtrTy.
|
static |
Definition at line 2548 of file MicrosoftCXXABI.cpp.
References clang::CharUnits::getAsAlign(), clang::CodeGen::CodeGenTypeCache::getIntAlign(), clang::CodeGen::CodeGenModule::getModule(), and clang::CodeGen::CodeGenTypeCache::IntTy.
|
static |
Definition at line 2574 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::UnqualPtrTy.
|
static |
Definition at line 2562 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::UnqualPtrTy.
|
static |
Definition at line 2458 of file MicrosoftCXXABI.cpp.
References clang::cast(), clang::CodeGen::CodeGenModule::CreateRuntimeVariable(), and clang::CodeGen::CodeGenModule::getLLVMContext().
Referenced by emitDynamicTlsInitialization().
|
static |
Definition at line 3607 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::getModule(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.
|
static |
Definition at line 1305 of file MicrosoftCXXABI.cpp.
References clang::Type::castAs(), and clang::ValueDecl::getType().
Referenced by clang::ASTNameGenerator::Implementation::getAllManglings().
|
static |
Definition at line 1108 of file MicrosoftCXXABI.cpp.
References clang::Dtor_Deleting, clang::GlobalDecl::getDecl(), clang::GlobalDecl::getDtorType(), and clang::isa().
|
static |
Definition at line 1117 of file MicrosoftCXXABI.cpp.
References clang::DeclContext::decls(), clang::CodeGen::CodeGenModule::getABIInfo(), clang::CXXRecordDecl::getNumBases(), clang::CodeGen::CodeGenModule::getTarget(), clang::TargetInfo::getTriple(), clang::CXXRecordDecl::hasNonTrivialCopyAssignment(), clang::CXXRecordDecl::hasNonTrivialDestructor(), clang::CXXRecordDecl::hasPrivateFields(), clang::CXXRecordDecl::hasProtectedFields(), clang::CXXRecordDecl::hasSimpleCopyAssignment(), clang::isa(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), clang::CXXRecordDecl::isPolymorphic(), clang::CXXRecordDecl::needsImplicitCopyAssignment(), and clang::Template.
|
static |
Definition at line 1817 of file MicrosoftCXXABI.cpp.
References clang::VPtrInfo::MangledPath.
|
static |
Recursively serializes a class hierarchy in pre-order depth first order.
Definition at line 3730 of file MicrosoftCXXABI.cpp.
References clang::CXXRecordDecl::bases(), and serializeClassHierarchy().
Referenced by serializeClassHierarchy().