|
clang 24.0.0git
|
Namespaces | |
| namespace | omp |
Classes | |
| class | ABIInfo |
| class | Address |
| class | AggValueSlot |
| An aggregate value slot. More... | |
| struct | CallArg |
| class | CallArgList |
| struct | CatchTypeInfo |
| The MS C++ ABI needs a pointer to RTTI data plus some flags to describe the type of a catch handler, so we use this wrapper. More... | |
| struct | CGCoroData |
| struct | CIRGenBitFieldInfo |
| Record with information about how a bitfield should be accessed. More... | |
| class | CIRGenBuilderTy |
| class | CIRGenCallee |
| class | CIRGenCalleeInfo |
| Abstract information about a function or function prototype. More... | |
| class | CIRGenCUDARuntime |
| class | CIRGenCXXABI |
| Implements C++ ABI-specific code generation functions. More... | |
| struct | CIRGenFixedPointBuilder |
| class | CIRGenFunction |
| class | CIRGenFunctionInfo |
| class | CIRGenModule |
| This class organizes the cross-function state that is used while generating CIR code. More... | |
| class | CIRGenOpenMPRuntime |
| class | CIRGenRecordLayout |
| This class handles record and union layout info while lowering AST types to CIR types. More... | |
| struct | CIRGenTypeCache |
| This structure provides a set of types that are commonly used during IR emission. More... | |
| class | CIRGenTypes |
| This class organizes the cross-module state that is used while lowering AST types to CIR types. More... | |
| class | CIRGenVTables |
| class | ConstantEmitter |
| class | EHCleanupScope |
| A cleanup scope which generates the cleanup blocks lazily. More... | |
| struct | EHPersonality |
| The exceptions personality for a function. More... | |
| class | EHScope |
| A protected scope for zero-cost EH handling. More... | |
| class | EHScopeStack |
| A stack of scopes which respond to exceptions, including cleanups and catch blocks. More... | |
| class | FunctionArgList |
| Type for representing both the decl and type of parameters to a function. More... | |
| class | LValue |
| class | LValueBaseInfo |
| class | OpenACCRecipeBuilder |
| class | OpenACCRecipeBuilderBase |
| class | OpenMPClauseEmitter |
| Emits OpenMP clauses for a directive, writing results into the auto-generated ClauseOps from the OMP dialect. More... | |
| struct | OpenMPNYIClauseList |
| A type-only list of OpenMP clause AST node types. More... | |
| class | RequiredArgs |
| A class for recording the number of arguments that a function signature requires. More... | |
| class | ReturnValueSlot |
| Contains the address where the return value of a function can be stored, and whether the address is volatile or not. More... | |
| class | RValue |
| This trivial value class is used to represent the result of an expression that is evaluated. More... | |
| class | TargetCIRGenInfo |
Enumerations | |
| enum | ForDefinition_t : bool { NotForDefinition = false , ForDefinition = true } |
| enum class | AlignmentSource { Decl , AttributedType , Type } |
| The source of the alignment of an l-value; an expression of confidence in the alignment actually matching the estimate. More... | |
| enum | CleanupKind : unsigned { EHCleanup = 0x1 , NormalCleanup = 0x2 , NormalAndEHCleanup = EHCleanup | NormalCleanup , LifetimeMarker = 0x8 , NormalEHLifetimeMarker = LifetimeMarker | NormalAndEHCleanup } |
Functions | |
| const EHPersonality & | getEHPersonality (CIRGenModule &cgm, const clang::FunctionDecl *fd) |
Selects the personality function to use for fd, or for the translation unit as a whole when fd is null. | |
| const EHPersonality & | getEHPersonality (CIRGenFunction &cgf) |
| Selects the personality function to use for the function currently being emitted. | |
| CIRGenCUDARuntime * | createNVCUDARuntime (CIRGenModule &cgm) |
| CIRGenCXXABI * | CreateCIRGenItaniumCXXABI (CIRGenModule &cgm) |
| Creates and Itanium-family ABI. | |
| CIRGenCXXABI * | CreateCIRGenMicrosoftCXXABI (CIRGenModule &cgm) |
| Creates Microsoft ABI. | |
| static bool | functionMightHaveBypass (const Stmt *s) |
Does the statement tree rooted at s contain a label, switch, or indirect goto that could bypass a local's initialization? | |
| static bool | mayDropFunctionReturn (const ASTContext &astContext, QualType returnType) |
| static bool | previousOpIsNonYieldingCleanup (mlir::Block *block) |
| static mlir::Value | emitArgumentDemotion (CIRGenFunction &cgf, const VarDecl *var, mlir::Value value) |
| An argument came in as a promoted argument; demote it back to its declared type. | |
| static std::variant< LValue, RValue > | emitPseudoObjectExpr (CIRGenFunction &cgf, const PseudoObjectExpr *e, bool forLValue, AggValueSlot slot) |
| static std::string | getVersionedTmpName (llvm::StringRef name, unsigned cnt) |
| unsigned | getNumPassObjectSizeParams (const clang::FunctionProtoType *proto) |
| Return the number of parameters with the pass_object_size attribute. | |
| mlir::acc::DataClauseModifier | convertOpenACCModifiers (OpenACCModifierKind modifiers) |
| mlir::acc::DeviceType | decodeDeviceType (const IdentifierInfo *ii) |
| static AlignmentSource | getFieldAlignmentSource (AlignmentSource source) |
| Given that the base address has the given alignment source, what's our confidence in the alignment of the field? | |
| bool | isEmptyFieldForABI (const ASTContext &context, const FieldDecl *fd) |
| isEmptyFieldForABI - Return true if the field is "empty", that is, it is a zero-width bit-field or an (array of) empty record(s). | |
| bool | isEmptyRecordForABI (const ASTContext &context, QualType t) |
| isEmptyRecordForABI - Return true if a structure contains only empty base classes and fields. | |
| std::unique_ptr< TargetCIRGenInfo > | createAMDGPUTargetCIRGenInfo (CIRGenTypes &cgt) |
| void | setAMDGPUTargetFunctionAttributes (const clang::Decl *decl, cir::FuncOp func, CIRGenModule &cgm) |
| Set AMDGPU-specific function attributes for HIP kernels. | |
| std::unique_ptr< TargetCIRGenInfo > | createX8664TargetCIRGenInfo (CIRGenTypes &cgt) |
| std::unique_ptr< TargetCIRGenInfo > | createAArch64TargetCIRGenInfo (CIRGenTypes &cgt) |
| std::unique_ptr< TargetCIRGenInfo > | createNVPTXTargetCIRGenInfo (CIRGenTypes &cgt) |
| std::unique_ptr< TargetCIRGenInfo > | createCommonSPIRTargetCIRGenInfo (CIRGenTypes &cgt) |
|
strong |
The source of the alignment of an l-value; an expression of confidence in the alignment actually matching the estimate.
Definition at line 116 of file CIRGenValue.h.
Definition at line 28 of file EHScopeStack.h.
| Enumerator | |
|---|---|
| NotForDefinition | |
| ForDefinition | |
Definition at line 62 of file CIRGenModule.h.
|
inline |
Definition at line 18 of file CIRGenOpenACCHelpers.h.
References clang::Always, clang::AlwaysIn, clang::AlwaysOut, clang::Capture, clang::isOpenACCModifierBitSet(), clang::Readonly, and clang::Zero.
Referenced by clang::CIRGen::CIRGenModule::emitGlobalOpenACCDeclareDataOperands().
| std::unique_ptr< TargetCIRGenInfo > clang::CIRGen::createAArch64TargetCIRGenInfo | ( | CIRGenTypes & | cgt | ) |
Definition at line 68 of file AArch64.cpp.
Referenced by clang::CIRGen::CIRGenModule::getTargetCIRGenInfo().
| std::unique_ptr< TargetCIRGenInfo > clang::CIRGen::createAMDGPUTargetCIRGenInfo | ( | CIRGenTypes & | cgt | ) |
Definition at line 168 of file TargetInfo.cpp.
Referenced by clang::CIRGen::CIRGenModule::getTargetCIRGenInfo().
| CIRGenCXXABI * clang::CIRGen::CreateCIRGenItaniumCXXABI | ( | CIRGenModule & | cgm | ) |
Creates and Itanium-family ABI.
Definition at line 1562 of file CIRGenItaniumCXXABI.cpp.
References cir::MissingFeatures::cxxabiAppleARM64CXXABI(), clang::CIRGen::CIRGenModule::getASTContext(), and clang::ASTContext::getCXXABIKind().
Referenced by createCXXABI().
| CIRGenCXXABI * clang::CIRGen::CreateCIRGenMicrosoftCXXABI | ( | CIRGenModule & | cgm | ) |
Creates Microsoft ABI.
Definition at line 322 of file CIRGenMicrosoftCXXABI.cpp.
Referenced by createCXXABI().
| std::unique_ptr< TargetCIRGenInfo > clang::CIRGen::createCommonSPIRTargetCIRGenInfo | ( | CIRGenTypes & | cgt | ) |
Definition at line 129 of file SPIRV.cpp.
Referenced by clang::CIRGen::CIRGenModule::getTargetCIRGenInfo().
| CIRGenCUDARuntime * clang::CIRGen::createNVCUDARuntime | ( | CIRGenModule & | cgm | ) |
Definition at line 373 of file CIRGenCUDANV.cpp.
| std::unique_ptr< TargetCIRGenInfo > clang::CIRGen::createNVPTXTargetCIRGenInfo | ( | CIRGenTypes & | cgt | ) |
Definition at line 128 of file NVPTX.cpp.
Referenced by clang::CIRGen::CIRGenModule::getTargetCIRGenInfo().
| std::unique_ptr< TargetCIRGenInfo > clang::CIRGen::createX8664TargetCIRGenInfo | ( | CIRGenTypes & | cgt | ) |
Definition at line 173 of file TargetInfo.cpp.
Referenced by clang::CIRGen::CIRGenModule::getTargetCIRGenInfo().
|
inline |
Definition at line 44 of file CIRGenOpenACCHelpers.h.
References clang::IdentifierInfo::getName().
|
static |
An argument came in as a promoted argument; demote it back to its declared type.
Definition at line 458 of file CIRGenFunction.cpp.
References clang::CIRGen::CIRGenFunction::convertType(), clang::CIRGen::CIRGenBuilderTy::createFloatingCast(), and clang::CIRGen::CIRGenFunction::getBuilder().
Referenced by clang::CIRGen::CIRGenFunction::emitFunctionProlog().
|
static |
Definition at line 1128 of file CIRGenFunction.cpp.
References clang::CIRGen::CIRGenFunction::cgm, clang::CIRGen::CIRGenFunction::emitAnyExpr(), clang::CIRGen::CIRGenFunction::emitIgnoredExpr(), clang::CIRGen::CIRGenFunction::emitLValue(), clang::CIRGen::CIRGenModule::errorNYI(), clang::PseudoObjectExpr::getResultExpr(), clang::Stmt::getSourceRange(), clang::CIRGen::CIRGenFunction::hasAggregateEvaluationKind(), clang::Expr::isPRValue(), and clang::PseudoObjectExpr::semantics().
Referenced by clang::CIRGen::CIRGenFunction::emitPseudoObjectLValue(), and clang::CIRGen::CIRGenFunction::emitPseudoObjectRValue().
Does the statement tree rooted at s contain a label, switch, or indirect goto that could bypass a local's initialization?
A coarse stand-in for classic CodeGen's per-decl bypass analysis (PR28267).
Definition at line 36 of file CIRGenFunction.cpp.
References clang::Stmt::children(), functionMightHaveBypass(), and clang::isa().
Referenced by functionMightHaveBypass(), and clang::CIRGen::CIRGenFunction::generateCode().
| const EHPersonality & clang::CIRGen::getEHPersonality | ( | CIRGenFunction & | cgf | ) |
Selects the personality function to use for the function currently being emitted.
Definition at line 33 of file CIRGenException.cpp.
References clang::CIRGen::CIRGenFunction::cgm, clang::CIRGen::CIRGenFunction::curCodeDecl, clang::CIRGen::CIRGenFunction::curSEHParent, clang::GlobalDecl::getDecl(), and getEHPersonality().
| const EHPersonality & clang::CIRGen::getEHPersonality | ( | CIRGenModule & | cgm, |
| const clang::FunctionDecl * | fd ) |
Selects the personality function to use for fd, or for the translation unit as a whole when fd is null.
Definition at line 27 of file CIRGenException.cpp.
References clang::CIRGen::CIRGenModule::getCodeGenOpts(), clang::CodeGenUtils::getEHPersonality(), clang::CIRGen::CIRGenModule::getLangOpts(), and clang::CIRGen::CIRGenModule::getTarget().
Referenced by clang::CIRGen::CIRGenFunction::emitCXXTryStmt(), clang::CIRGen::CIRGenFunction::emitStartEHSpec(), and getEHPersonality().
|
inlinestatic |
Given that the base address has the given alignment source, what's our confidence in the alignment of the field?
Definition at line 134 of file CIRGenValue.h.
References Decl.
Referenced by clang::CIRGen::CIRGenFunction::emitLValueForField(), and clang::CIRGen::CIRGenFunction::emitLValueForFieldInitialization().
|
inline |
Return the number of parameters with the pass_object_size attribute.
Definition at line 29 of file CIRGenFunctionInfo.h.
References clang::FunctionProtoType::getExtParameterInfos(), and clang::FunctionProtoType::hasExtParameterInfos().
Referenced by clang::CIRGen::RequiredArgs::getFromProtoWithExtraSlots().
|
static |
Definition at line 1388 of file CIRGenFunction.cpp.
References clang::out.
Referenced by clang::CIRGen::CIRGenFunction::getCounterAggTmpAsString(), and clang::CIRGen::CIRGenFunction::getCounterRefTmpAsString().
| bool clang::CIRGen::isEmptyFieldForABI | ( | const ASTContext & | context, |
| const FieldDecl * | fd ) |
isEmptyFieldForABI - Return true if the field is "empty", that is, it is a zero-width bit-field or an (array of) empty record(s).
An unnamed bit-field wider than zero bits is not empty: it is storage the classifier reads like a named bit-field's. C++ record fields are never empty unless marked [[no_unique_address]], and that exception applies only to records, not arrays of records.
Definition at line 41 of file TargetInfo.cpp.
References clang::Type::getAsCanonical(), clang::ASTContext::getAsConstantArrayType(), clang::ValueDecl::getType(), clang::Decl::hasAttr(), clang::isa(), isEmptyRecordForABI(), clang::FieldDecl::isUnnamedBitField(), and clang::FieldDecl::isZeroLengthBitField().
Referenced by isEmptyRecordForABI().
| bool clang::CIRGen::isEmptyRecordForABI | ( | const ASTContext & | context, |
| QualType | t ) |
isEmptyRecordForABI - Return true if a structure contains only empty base classes and fields.
Note that a structure with a flexible array member is not considered empty, and neither is a polymorphic class, whose vtable pointer is neither a base nor a field.
Definition at line 15 of file TargetInfo.cpp.
References clang::Type::getAsRecordDecl(), isEmptyFieldForABI(), and isEmptyRecordForABI().
Referenced by isEmptyFieldForABI(), isEmptyRecordForABI(), and marksMatchABIEmptiness().
|
static |
Definition at line 377 of file CIRGenFunction.cpp.
References clang::Type::getAsCXXRecordDecl(), and clang::QualType::isTriviallyCopyableType().
|
static |
Definition at line 386 of file CIRGenFunction.cpp.
| void clang::CIRGen::setAMDGPUTargetFunctionAttributes | ( | const clang::Decl * | decl, |
| cir::FuncOp | func, | ||
| CIRGenModule & | cgm ) |
Set AMDGPU-specific function attributes for HIP kernels.
Definition at line 214 of file AMDGPU.cpp.
References Decl, clang::ast_matchers::decl, clang::CIRGen::CIRGenModule::getBuilder(), clang::CIRGen::CIRGenModule::getLangOpts(), and clang::Decl::hasAttr().