clang 20.0.0git
Functions
MicrosoftCXXABI.cpp File Reference
#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)
 

Function Documentation

◆ decomposeTypeForEH()

static QualType decomposeTypeForEH ( ASTContext Context,
QualType  T,
bool IsConst,
bool IsVolatile,
bool IsUnaligned 
)
static

◆ detectAmbiguousBases()

static void detectAmbiguousBases ( SmallVectorImpl< MSRTTIClass > &  Classes)
static

Find ambiguity among base classes.

Definition at line 3725 of file MicrosoftCXXABI.cpp.

References clang::Class.

◆ emitDynamicTlsInitialization()

static void emitDynamicTlsInitialization ( CodeGenFunction CGF)
static

◆ emitDynamicTlsInitializationCall()

static void emitDynamicTlsInitializationCall ( CodeGenFunction CGF,
llvm::GlobalValue *  TlsGuard,
llvm::BasicBlock *  ContinueBB 
)
static

◆ emitGlobalDtorWithTLRegDtor()

static void emitGlobalDtorWithTLRegDtor ( CodeGenFunction CGF,
const VarDecl VD,
llvm::FunctionCallee  Dtor,
llvm::Constant *  Addr 
)
static

◆ emitRTtypeidCall()

static llvm::CallBase * emitRTtypeidCall ( CodeGenFunction CGF,
llvm::Value Argument 
)
static

◆ emitTlsGuardCheck()

static void emitTlsGuardCheck ( CodeGenFunction CGF,
llvm::GlobalValue *  TlsGuard,
llvm::BasicBlock *  DynInitBB,
llvm::BasicBlock *  ContinueBB 
)
static

◆ getDynTlsOnDemandInitFn()

static llvm::FunctionCallee getDynTlsOnDemandInitFn ( CodeGenModule CGM)
static

◆ getInitThreadAbortFn()

static llvm::FunctionCallee getInitThreadAbortFn ( CodeGenModule CGM)
static

◆ getInitThreadEpochPtr()

static ConstantAddress getInitThreadEpochPtr ( CodeGenModule CGM)
static

◆ getInitThreadFooterFn()

static llvm::FunctionCallee getInitThreadFooterFn ( CodeGenModule CGM)
static

◆ getInitThreadHeaderFn()

static llvm::FunctionCallee getInitThreadHeaderFn ( CodeGenModule CGM)
static

◆ getTlsGuardVar()

static llvm::GlobalValue * getTlsGuardVar ( CodeGenModule CGM)
static

◆ getTypeInfoVTable()

static llvm::GlobalVariable * getTypeInfoVTable ( CodeGenModule CGM)
static

◆ hasDefaultCXXMethodCC()

static bool hasDefaultCXXMethodCC ( ASTContext Context,
const CXXMethodDecl MD 
)
static

◆ isDeletingDtor()

static bool isDeletingDtor ( GlobalDecl  GD)
static

◆ isTrivialForMSVC()

static bool isTrivialForMSVC ( const CXXRecordDecl RD,
QualType  Ty,
CodeGenModule CGM 
)
static

◆ mangleVFTableName()

static void mangleVFTableName ( MicrosoftMangleContext MangleContext,
const CXXRecordDecl RD,
const VPtrInfo VFPtr,
SmallString< 256 > &  Name 
)
static

Definition at line 1802 of file MicrosoftCXXABI.cpp.

References clang::VPtrInfo::MangledPath.

◆ serializeClassHierarchy()

static void serializeClassHierarchy ( SmallVectorImpl< MSRTTIClass > &  Classes,
const CXXRecordDecl RD 
)
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().