|
clang 24.0.0git
|
C++ view class that accepts both !cir.struct and !cir.union types. More...
#include "clang/CIR/Dialect/IR/CIRTypes.h"
Public Member Functions | |
| RecordType (StructType t) | |
| RecordType (UnionType t) | |
| llvm::ArrayRef< mlir::Type > | getMembers () const |
| mlir::StringAttr | getName () const |
| bool | isIncomplete () const |
| bool | isComplete () const |
| bool | getPacked () const |
| bool | getPadded () const |
| bool | isClass () const |
| bool | isStruct () const |
| bool | isUnion () const |
| size_t | getNumElements () const |
| mlir::Type | getElementType (size_t idx) const |
| std::string | getKindAsStr () const |
| std::string | getPrefixedName () const |
| void | complete (llvm::ArrayRef< mlir::Type > members, bool packed, bool padded, mlir::Type padding={}) |
| uint64_t | getElementOffset (const mlir::DataLayout &dataLayout, unsigned idx) const |
| bool | isLayoutIdentical (const RecordType &other) |
| bool | isABIConvertedRecord () const |
| mlir::StringAttr | getABIConvertedName () const |
| void | removeABIConversionNamePrefix () |
Static Public Member Functions | |
| static bool | classof (mlir::Type t) |
C++ view class that accepts both !cir.struct and !cir.union types.
Follows the MLIR BaseMemRefType pattern: StructType and UnionType are the concrete tablegen types; RecordType is a hand-written view class that covers both. Use it when code must handle either kind generically.
Methods that are common to both types are forwarded through dyn_cast dispatch. Type-specific methods (getPadding, getUnionStorageType) are only available on the concrete type.
Definition at line 103 of file CIRTypes.h.
|
inline |
Definition at line 111 of file CIRTypes.h.
Referenced by isLayoutIdentical().
|
inline |
Definition at line 113 of file CIRTypes.h.
|
inlinestatic |
Definition at line 115 of file CIRTypes.h.
| void RecordType::complete | ( | llvm::ArrayRef< mlir::Type > | members, |
| bool | packed, | ||
| bool | padded, | ||
| mlir::Type | padding = {} ) |
Definition at line 562 of file CIRTypes.cpp.
Referenced by clang::CIRGen::CIRGenTypes::computeRecordLayout().
| mlir::StringAttr RecordType::getABIConvertedName | ( | ) | const |
Definition at line 595 of file CIRTypes.cpp.
| uint64_t RecordType::getElementOffset | ( | const mlir::DataLayout & | dataLayout, |
| unsigned | idx ) const |
Definition at line 571 of file CIRTypes.cpp.
Referenced by clang::CIRGen::CIRGenFunction::emitAddrOfFieldStorage().
|
inline |
Definition at line 131 of file CIRTypes.h.
References getMembers().
| std::string RecordType::getKindAsStr | ( | ) | const |
Definition at line 554 of file CIRTypes.cpp.
Referenced by getPrefixedName().
| llvm::ArrayRef< mlir::Type > RecordType::getMembers | ( | ) | const |
Definition at line 519 of file CIRTypes.cpp.
Referenced by clang::CIRGen::CIRGenFunction::emitAddrOfFieldStorage(), getElementType(), and getNumElements().
| mlir::StringAttr RecordType::getName | ( | ) | const |
Definition at line 524 of file CIRTypes.cpp.
Referenced by clang::CIRGen::CIRGenTypes::computeRecordLayout(), and getPrefixedName().
|
inline |
Definition at line 130 of file CIRTypes.h.
References getMembers().
| bool RecordType::getPacked | ( | ) | const |
Definition at line 534 of file CIRTypes.cpp.
| bool RecordType::getPadded | ( | ) | const |
Definition at line 539 of file CIRTypes.cpp.
| std::string RecordType::getPrefixedName | ( | ) | const |
Definition at line 559 of file CIRTypes.cpp.
References getKindAsStr(), and getName().
| bool RecordType::isABIConvertedRecord | ( | ) | const |
Definition at line 590 of file CIRTypes.cpp.
| bool RecordType::isClass | ( | ) | const |
Definition at line 544 of file CIRTypes.cpp.
|
inline |
Definition at line 122 of file CIRTypes.h.
References isIncomplete().
Referenced by clang::CIRGen::CIRGenTypes::convertRecordDeclType().
| bool RecordType::isIncomplete | ( | ) | const |
Definition at line 529 of file CIRTypes.cpp.
Referenced by clang::CIRGen::CIRGenTypes::computeRecordLayout(), and isComplete().
| bool RecordType::isLayoutIdentical | ( | const RecordType & | other | ) |
Definition at line 577 of file CIRTypes.cpp.
References RecordType().
| bool RecordType::isStruct | ( | ) | const |
Definition at line 549 of file CIRTypes.cpp.
Referenced by cir::CIRABIRewriteContext::rewriteCallSite().
|
inline |
Definition at line 128 of file CIRTypes.h.
| void RecordType::removeABIConversionNamePrefix | ( | ) |
Definition at line 600 of file CIRTypes.cpp.