clang 22.0.0git
|
Classes | |
class | ABIInfo |
class | Address |
class | AggValueSlot |
An aggregate value slot. More... | |
struct | CallArg |
class | CallArgList |
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 | CIRGenCXXABI |
Implements C++ ABI-specific code generation functions. More... | |
class | CIRGenFunction |
class | CIRGenFunctionInfo |
class | CIRGenModule |
This class organizes the cross-function state that is used while generating CIR code. More... | |
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... | |
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 | 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 | |
CIRGenCXXABI * | CreateCIRGenItaniumCXXABI (CIRGenModule &cgm) |
Creates and Itanium-family ABI. | |
static bool | mayDropFunctionReturn (const ASTContext &astContext, QualType returnType) |
static void | eraseEmptyAndUnusedBlocks (cir::FuncOp func) |
static std::string | getVersionedTmpName (llvm::StringRef name, unsigned cnt) |
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 | isEmptyFieldForLayout (const ASTContext &context, const FieldDecl *fd) |
isEmptyFieldForLayout - Return true if the field is "empty", that is, either a zero-width bit-field or an isEmptyRecordForLayout. | |
bool | isEmptyRecordForLayout (const ASTContext &context, QualType t) |
isEmptyRecordForLayout - Return true if a structure contains only empty base classes (per isEmptyRecordForLayout) and fields (per isEmptyFieldForLayout). | |
std::unique_ptr< TargetCIRGenInfo > | createX8664TargetCIRGenInfo (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 115 of file CIRGenValue.h.
Definition at line 27 of file EHScopeStack.h.
Enumerator | |
---|---|
NotForDefinition | |
ForDefinition |
Definition at line 52 of file CIRGenModule.h.
CIRGenCXXABI * clang::CIRGen::CreateCIRGenItaniumCXXABI | ( | CIRGenModule & | cgm | ) |
Creates and Itanium-family ABI.
Definition at line 395 of file CIRGenItaniumCXXABI.cpp.
References cir::MissingFeatures::cxxabiAppleARM64CXXABI(), clang::CIRGen::CIRGenModule::getASTContext(), and clang::ASTContext::getCXXABIKind().
Referenced by createCXXABI().
std::unique_ptr< TargetCIRGenInfo > clang::CIRGen::createX8664TargetCIRGenInfo | ( | CIRGenTypes & | cgt | ) |
Definition at line 57 of file TargetInfo.cpp.
Referenced by clang::CIRGen::CIRGenModule::getTargetCIRGenInfo().
|
static |
Definition at line 495 of file CIRGenFunction.cpp.
Referenced by clang::CIRGen::CIRGenFunction::generateCode().
|
inlinestatic |
Given that the base address has the given alignment source, what's our confidence in the alignment of the field?
Definition at line 133 of file CIRGenValue.h.
References Decl.
Referenced by clang::CIRGen::CIRGenFunction::emitLValueForField(), and clang::CIRGen::CIRGenFunction::emitLValueForFieldInitialization().
|
static |
Definition at line 810 of file CIRGenFunction.cpp.
References clang::out.
Referenced by clang::CIRGen::CIRGenFunction::getCounterAggTmpAsString(), and clang::CIRGen::CIRGenFunction::getCounterRefTmpAsString().
bool clang::CIRGen::isEmptyFieldForLayout | ( | const ASTContext & | context, |
const FieldDecl * | fd | ||
) |
isEmptyFieldForLayout - Return true if the field is "empty", that is, either a zero-width bit-field or an isEmptyRecordForLayout.
Definition at line 30 of file TargetInfo.cpp.
References clang::ValueDecl::getType(), isEmptyRecordForLayout(), clang::FieldDecl::isUnnamedBitField(), and clang::FieldDecl::isZeroLengthBitField().
Referenced by isEmptyRecordForLayout().
bool clang::CIRGen::isEmptyRecordForLayout | ( | const ASTContext & | context, |
QualType | t | ||
) |
isEmptyRecordForLayout - Return true if a structure contains only empty base classes (per isEmptyRecordForLayout) and fields (per isEmptyFieldForLayout).
Note, C++ record fields are considered empty if the [[no_unique_address]] attribute would have made them empty.
Definition at line 7 of file TargetInfo.cpp.
References clang::Type::getAsRecordDecl(), isEmptyFieldForLayout(), and isEmptyRecordForLayout().
Referenced by isEmptyFieldForLayout(), and isEmptyRecordForLayout().
|
static |
Definition at line 355 of file CIRGenFunction.cpp.
References clang::Type::getAsCXXRecordDecl(), and clang::QualType::isTriviallyCopyableType().