23 #ifndef LLVM_CLANG_CODEGEN_CODEGENABITYPES_H 24 #define LLVM_CLANG_CODEGEN_CODEGENABITYPES_H 43 class CoverageSourceInfo;
44 class DiagnosticsEngine;
45 class HeaderSearchOptions;
47 class PreprocessorOptions;
54 const ObjCMethodDecl *MD,
55 QualType receiverType);
58 CanQual<FunctionProtoType> Ty);
61 CanQual<FunctionNoProtoType> Ty);
64 const CXXRecordDecl *RD,
65 const FunctionProtoType *FTP,
66 const CXXMethodDecl *MD);
70 ArrayRef<CanQualType> argTypes,
71 FunctionType::ExtInfo info,
76 const FunctionDecl *FD);
85 const RecordDecl *RD,
const FieldDecl *FD);
92 CharUnits DstAlignment,
101 CharUnits DstAlignment,
102 CharUnits SrcAlignment,
111 CharUnits DstAlignment,
112 CharUnits SrcAlignment,
121 CodeGenModule &CGM, CharUnits DstAlignment, CharUnits SrcAlignment,
122 bool IsVolatile, QualType QT);
129 CodeGenModule &CGM, CharUnits DstAlignment, CharUnits SrcAlignment,
130 bool IsVolatile, QualType QT);
137 CharUnits DstAlignment,
138 bool IsVolatile, QualType QT);
Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
C Language Family Type Representation.
constexpr XRayInstrMask Function
const CGFunctionInfo & arrangeCXXMethodType(CodeGenModule &CGM, const CXXRecordDecl *RD, const FunctionProtoType *FTP, const CXXMethodDecl *MD)
llvm::Function * getNonTrivialCStructCopyConstructor(CodeGenModule &CGM, CharUnits DstAlignment, CharUnits SrcAlignment, bool IsVolatile, QualType QT)
Returns the copy constructor for a C struct with non-trivially copyable fields, generating it if nece...
const CGFunctionInfo & arrangeObjCMessageSendSignature(CodeGenModule &CGM, const ObjCMethodDecl *MD, QualType receiverType)
llvm::FunctionType * convertFreeFunctionType(CodeGenModule &CGM, const FunctionDecl *FD)
Returns null if the function type is incomplete and can't be lowered.
llvm::Function * getNonTrivialCStructMoveAssignmentOperator(CodeGenModule &CGM, CharUnits DstAlignment, CharUnits SrcAlignment, bool IsVolatile, QualType QT)
Return the move assignment operator for a C struct with non-trivially copyable fields, generating it if necessary.
const CGFunctionInfo & arrangeFreeFunctionCall(CodeGenModule &CGM, CanQualType returnType, ArrayRef< CanQualType > argTypes, FunctionType::ExtInfo info, RequiredArgs args)
CanQual< Type > CanQualType
Represents a canonical, potentially-qualified type.
const CGFunctionInfo & arrangeFreeFunctionType(CodeGenModule &CGM, CanQual< FunctionNoProtoType > Ty)
llvm::Function * getNonTrivialCStructDestructor(CodeGenModule &CGM, CharUnits DstAlignment, bool IsVolatile, QualType QT)
Returns the destructor for a C struct with non-trivially copyable fields, generating it if necessary...
Optional< types::ID > Type
Dataflow Directional Tag Classes.
llvm::Function * getNonTrivialCStructDefaultConstructor(CodeGenModule &GCM, CharUnits DstAlignment, bool IsVolatile, QualType QT)
Returns the default constructor for a C struct with non-trivially copyable fields, generating it if necessary.
llvm::Function * getNonTrivialCStructCopyAssignmentOperator(CodeGenModule &CGM, CharUnits DstAlignment, CharUnits SrcAlignment, bool IsVolatile, QualType QT)
Returns the copy assignment operator for a C struct with non-trivially copyable fields, generating it if necessary.
unsigned getLLVMFieldNumber(CodeGenModule &CGM, const RecordDecl *RD, const FieldDecl *FD)
Given a non-bitfield struct field, return its index within the elements of the struct's converted typ...
llvm::Type * convertTypeForMemory(CodeGenModule &CGM, QualType T)
llvm::Function * getNonTrivialCStructMoveConstructor(CodeGenModule &CGM, CharUnits DstAlignment, CharUnits SrcAlignment, bool IsVolatile, QualType QT)
Returns the move constructor for a C struct with non-trivially copyable fields, generating it if nece...