clang 20.0.0git
|
#include "ABIInfo.h"
#include "CGCXXABI.h"
#include "CGCleanup.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 3929 of file MicrosoftCXXABI.cpp.
References clang::Type::getAs(), clang::ASTContext::getExceptionObjectType(), clang::ASTContext::getMemberPointerType(), clang::Type::getPointeeType(), clang::ASTContext::getPointerType(), clang::QualType::getQualifiers(), clang::QualType::getUnqualifiedType(), clang::Qualifiers::hasUnaligned(), clang::QualType::isConstQualified(), clang::QualType::isNull(), clang::Type::isPointerType(), clang::QualType::isVolatileQualified(), and clang::T.
|
static |
Find ambiguity among base classes.
Definition at line 3725 of file MicrosoftCXXABI.cpp.
References clang::Class.
|
static |
Definition at line 2496 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 2484 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, getDynTlsOnDemandInitFn(), and clang::Initializer.
Referenced by emitDynamicTlsInitialization().
|
static |
Definition at line 2357 of file MicrosoftCXXABI.cpp.
References 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 2474 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 2460 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), and clang::CodeGen::CodeGenModule::getLLVMContext().
Referenced by emitDynamicTlsInitializationCall().
|
static |
Definition at line 2573 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::IntTy.
|
static |
Definition at line 2535 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 2561 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::IntTy.
|
static |
Definition at line 2549 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::IntTy.
|
static |
Definition at line 2445 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::CreateRuntimeVariable(), and clang::CodeGen::CodeGenModule::getLLVMContext().
Referenced by emitDynamicTlsInitialization().
|
static |
Definition at line 3593 of file MicrosoftCXXABI.cpp.
References clang::CodeGen::CodeGenModule::getModule(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.
|
static |
Definition at line 1292 of file MicrosoftCXXABI.cpp.
References clang::Type::castAs(), clang::ASTContext::getDefaultCallingConvention(), and clang::ValueDecl::getType().
Referenced by clang::ASTNameGenerator::Implementation::getAllManglings().
|
static |
Definition at line 1097 of file MicrosoftCXXABI.cpp.
References clang::Dtor_Deleting, clang::GlobalDecl::getDecl(), and clang::GlobalDecl::getDtorType().
|
static |
Definition at line 1106 of file MicrosoftCXXABI.cpp.
References D, clang::DeclContext::decls(), clang::CodeGen::CodeGenTypes::getABIInfo(), clang::CXXRecordDecl::getNumBases(), clang::CodeGen::CodeGenModule::getTarget(), clang::TargetInfo::getTriple(), clang::CodeGen::CodeGenModule::getTypes(), clang::CXXRecordDecl::hasNonTrivialCopyAssignment(), clang::CXXRecordDecl::hasNonTrivialDestructor(), clang::CXXRecordDecl::hasPrivateFields(), clang::CXXRecordDecl::hasProtectedFields(), clang::CXXRecordDecl::hasSimpleCopyAssignment(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), clang::CXXRecordDecl::isPolymorphic(), and clang::CXXRecordDecl::needsImplicitCopyAssignment().
|
static |
Definition at line 1802 of file MicrosoftCXXABI.cpp.
References clang::VPtrInfo::MangledPath.
|
static |
Recursively serializes a class hierarchy in pre-order depth first order.
Definition at line 3716 of file MicrosoftCXXABI.cpp.
References clang::CXXRecordDecl::bases(), and serializeClassHierarchy().
Referenced by serializeClassHierarchy().