|
clang 24.0.0git
|
#include "CIRGenTypes.h"#include "CIRGenCXXABI.h"#include "CIRGenCall.h"#include "CIRGenFunctionInfo.h"#include "CIRGenModule.h"#include "mlir/IR/BuiltinTypes.h"#include "clang/AST/ASTContext.h"#include "clang/AST/GlobalDecl.h"#include "clang/AST/Type.h"#include "clang/Basic/TargetInfo.h"#include "clang/CIR/Dialect/IR/CIRTypes.h"#include "clang/CIR/MissingFeatures.h"#include <cassert>#include "clang/Basic/AMDGPUTypes.def"Go to the source code of this file.
Macros | |
| #define | AMDGPU_OPAQUE_PTR_TYPE(Name, Id, SingletonId, Width, Align, AS) |
| #define | AMDGPU_NAMED_BARRIER_TYPE(Name, Id, SingletonId, Width, Align, Scope) |
| #define | AMDGPU_TYPE(Name, Id, SingletonId, Width, Align) |
Functions | |
| static bool | isSafeToConvert (QualType qt, CIRGenTypes &cgt, llvm::SmallPtrSetImpl< const RecordDecl * > &alreadyChecked) |
| Return true if it is safe to convert this field type, which requires the record elements contained by-value to all be recursively safe to convert. | |
| static bool | isSafeToConvert (const RecordDecl *rd, CIRGenTypes &cgt, llvm::SmallPtrSetImpl< const RecordDecl * > &alreadyChecked) |
| Return true if it is safe to convert the specified record decl to CIR and lay it out, false if doing so would cause us to get into a recursive compilation mess. | |
| static bool | isSafeToConvert (const RecordDecl *rd, CIRGenTypes &cgt) |
| static bool | typeContainsAtomicForABI (QualType ty, ASTContext &ctx) |
| Whether a by-value ABI type is _Atomic or contains an _Atomic member. | |
| #define AMDGPU_NAMED_BARRIER_TYPE | ( | Name, | |
| Id, | |||
| SingletonId, | |||
| Width, | |||
| Align, | |||
| Scope ) |
| #define AMDGPU_OPAQUE_PTR_TYPE | ( | Name, | |
| Id, | |||
| SingletonId, | |||
| Width, | |||
| Align, | |||
| AS ) |
| #define AMDGPU_TYPE | ( | Name, | |
| Id, | |||
| SingletonId, | |||
| Width, | |||
| Align ) |
|
static |
Definition at line 222 of file CIRGenTypes.cpp.
References isSafeToConvert(), and clang::CIRGen::CIRGenTypes::noRecordsBeingLaidOut().
|
static |
Return true if it is safe to convert the specified record decl to CIR and lay it out, false if doing so would cause us to get into a recursive compilation mess.
Definition at line 143 of file CIRGenTypes.cpp.
References clang::CIRGen::CIRGenTypes::cacheSafeToConvert(), clang::RecordDecl::fields(), clang::CIRGen::CIRGenTypes::getASTContext(), clang::ASTContext::getCanonicalTagType(), clang::CanQual< T >::getTypePtr(), clang::CIRGen::CIRGenTypes::isCachedSafeToConvert(), clang::TagDecl::isCompleteDefinition(), clang::CIRGen::CIRGenTypes::isRecordBeingLaidOut(), clang::CIRGen::CIRGenTypes::isRecordLayoutComplete(), and isSafeToConvert().
|
static |
Return true if it is safe to convert this field type, which requires the record elements contained by-value to all be recursively safe to convert.
Definition at line 199 of file CIRGenTypes.cpp.
References clang::Type::getAs(), clang::ASTContext::getAsArrayType(), clang::Type::getAsRecordDecl(), clang::CIRGen::CIRGenTypes::getASTContext(), and isSafeToConvert().
Referenced by clang::CIRGen::CIRGenTypes::convertRecordDeclType(), isSafeToConvert(), isSafeToConvert(), and isSafeToConvert().
|
static |
Whether a by-value ABI type is _Atomic or contains an _Atomic member.
Pointers and references are not walked: _Atomic(T)* is just a pointer.
Definition at line 785 of file CIRGenTypes.cpp.
References clang::RecordDecl::fields(), clang::ASTContext::getAsArrayType(), clang::Type::getAsRecordDecl(), clang::QualType::getCanonicalType(), clang::RecordDecl::getDefinition(), clang::QualType::getUnqualifiedType(), clang::Type::isAtomicType(), and typeContainsAtomicForABI().
Referenced by clang::CIRGen::CIRGenTypes::arrangeCIRFunctionInfo(), and typeContainsAtomicForABI().