clang 20.0.0git
Public Types | Public Attributes | Protected Attributes | List of all members
clang::TransferrableTargetInfo Struct Reference

Fields controlling how types are laid out in memory; these may need to be copied for targets like AMDGPU that base their ABIs on an auxiliary CPU target. More...

#include "clang/Basic/TargetInfo.h"

Inheritance diagram for clang::TransferrableTargetInfo:
Inheritance graph
[legend]

Public Types

enum  IntType {
  NoInt = 0 , SignedChar , UnsignedChar , SignedShort ,
  UnsignedShort , SignedInt , UnsignedInt , SignedLong ,
  UnsignedLong , SignedLongLong , UnsignedLongLong
}
 ===-— Target Data Type Query Methods ----------------------------—===// More...
 

Public Attributes

unsigned char PointerWidth
 
unsigned char PointerAlign
 
unsigned char BoolWidth
 
unsigned char BoolAlign
 
unsigned char IntWidth
 
unsigned char IntAlign
 
unsigned char HalfWidth
 
unsigned char HalfAlign
 
unsigned char BFloat16Width
 
unsigned char BFloat16Align
 
unsigned char FloatWidth
 
unsigned char FloatAlign
 
unsigned char DoubleWidth
 
unsigned char DoubleAlign
 
unsigned char LongDoubleWidth
 
unsigned char LongDoubleAlign
 
unsigned char Float128Align
 
unsigned char Ibm128Align
 
unsigned char LargeArrayMinWidth
 
unsigned char LargeArrayAlign
 
unsigned char LongWidth
 
unsigned char LongAlign
 
unsigned char LongLongWidth
 
unsigned char LongLongAlign
 
unsigned char Int128Align
 
std::optional< unsignedBitIntMaxAlign
 
unsigned char ShortAccumWidth
 
unsigned char ShortAccumAlign
 
unsigned char AccumWidth
 
unsigned char AccumAlign
 
unsigned char LongAccumWidth
 
unsigned char LongAccumAlign
 
unsigned char ShortFractWidth
 
unsigned char ShortFractAlign
 
unsigned char FractWidth
 
unsigned char FractAlign
 
unsigned char LongFractWidth
 
unsigned char LongFractAlign
 
bool PaddingOnUnsignedFixedPoint
 
unsigned char ShortAccumScale
 
unsigned char AccumScale
 
unsigned char LongAccumScale
 
unsigned char DefaultAlignForAttributeAligned
 
unsigned char MinGlobalAlign
 
unsigned short SuitableAlign
 
unsigned short NewAlign
 
unsigned MaxVectorAlign
 
unsigned MaxTLSAlign
 
const llvm::fltSemantics * HalfFormat
 
const llvm::fltSemantics * BFloat16Format
 
const llvm::fltSemantics * FloatFormat
 
const llvm::fltSemantics * DoubleFormat
 
const llvm::fltSemantics * LongDoubleFormat
 
const llvm::fltSemantics * Float128Format
 
const llvm::fltSemantics * Ibm128Format
 

Protected Attributes

IntType SizeType
 
IntType IntMaxType
 
IntType PtrDiffType
 
IntType IntPtrType
 
IntType WCharType
 
IntType WIntType
 
IntType Char16Type
 
IntType Char32Type
 
IntType Int64Type
 
IntType Int16Type
 
IntType SigAtomicType
 
IntType ProcessIDType
 
unsigned UseSignedCharForObjCBool: 1
 Whether Objective-C's built-in boolean type should be signed char.
 
unsigned UseBitFieldTypeAlignment: 1
 Control whether the alignment of bit-field types is respected when laying out structures.
 
unsigned UseZeroLengthBitfieldAlignment: 1
 Whether zero length bitfields (e.g., int : 0;) force alignment of the next bitfield.
 
unsigned UseLeadingZeroLengthBitfield: 1
 Whether zero length bitfield alignment is respected if they are the leading members.
 
unsigned UseExplicitBitFieldAlignment: 1
 Whether explicit bit field alignment attributes are honored.
 
unsigned ZeroLengthBitfieldBoundary
 If non-zero, specifies a fixed alignment value for bitfields that follow zero length bitfield, regardless of the zero length bitfield type.
 
unsigned MaxAlignedAttribute
 If non-zero, specifies a maximum alignment to truncate alignment specified in the aligned attribute of a static variable to this value.
 

Detailed Description

Fields controlling how types are laid out in memory; these may need to be copied for targets like AMDGPU that base their ABIs on an auxiliary CPU target.

Definition at line 86 of file TargetInfo.h.

Member Enumeration Documentation

◆ IntType

===-— Target Data Type Query Methods ----------------------------—===//

Enumerator
NoInt 
SignedChar 
UnsignedChar 
SignedShort 
UnsignedShort 
SignedInt 
UnsignedInt 
SignedLong 
UnsignedLong 
SignedLongLong 
UnsignedLongLong 

Definition at line 142 of file TargetInfo.h.

Member Data Documentation

◆ AccumAlign

unsigned char clang::TransferrableTargetInfo::AccumAlign

Definition at line 106 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ AccumScale

unsigned char clang::TransferrableTargetInfo::AccumScale

Definition at line 127 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ AccumWidth

unsigned char clang::TransferrableTargetInfo::AccumWidth

Definition at line 106 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ BFloat16Align

unsigned char clang::TransferrableTargetInfo::BFloat16Align

◆ BFloat16Format

const llvm::fltSemantics * clang::TransferrableTargetInfo::BFloat16Format

◆ BFloat16Width

unsigned char clang::TransferrableTargetInfo::BFloat16Width

◆ BitIntMaxAlign

std::optional<unsigned> clang::TransferrableTargetInfo::BitIntMaxAlign

Definition at line 102 of file TargetInfo.h.

Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo().

◆ BoolAlign

unsigned char clang::TransferrableTargetInfo::BoolAlign

◆ BoolWidth

unsigned char clang::TransferrableTargetInfo::BoolWidth

◆ Char16Type

IntType clang::TransferrableTargetInfo::Char16Type
protected

◆ Char32Type

IntType clang::TransferrableTargetInfo::Char32Type
protected

◆ DefaultAlignForAttributeAligned

unsigned char clang::TransferrableTargetInfo::DefaultAlignForAttributeAligned

◆ DoubleAlign

unsigned char clang::TransferrableTargetInfo::DoubleAlign

◆ DoubleFormat

const llvm::fltSemantics * clang::TransferrableTargetInfo::DoubleFormat

◆ DoubleWidth

unsigned char clang::TransferrableTargetInfo::DoubleWidth

◆ Float128Align

unsigned char clang::TransferrableTargetInfo::Float128Align

Definition at line 94 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ Float128Format

const llvm::fltSemantics * clang::TransferrableTargetInfo::Float128Format

◆ FloatAlign

unsigned char clang::TransferrableTargetInfo::FloatAlign

◆ FloatFormat

const llvm::fltSemantics * clang::TransferrableTargetInfo::FloatFormat

◆ FloatWidth

unsigned char clang::TransferrableTargetInfo::FloatWidth

◆ FractAlign

unsigned char clang::TransferrableTargetInfo::FractAlign

Definition at line 109 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ FractWidth

unsigned char clang::TransferrableTargetInfo::FractWidth

Definition at line 109 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ HalfAlign

unsigned char clang::TransferrableTargetInfo::HalfAlign

◆ HalfFormat

const llvm::fltSemantics* clang::TransferrableTargetInfo::HalfFormat

◆ HalfWidth

unsigned char clang::TransferrableTargetInfo::HalfWidth

◆ Ibm128Align

unsigned char clang::TransferrableTargetInfo::Ibm128Align

Definition at line 94 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ Ibm128Format

const llvm::fltSemantics * clang::TransferrableTargetInfo::Ibm128Format

Definition at line 139 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ Int128Align

unsigned char clang::TransferrableTargetInfo::Int128Align

Definition at line 98 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ Int16Type

IntType clang::TransferrableTargetInfo::Int16Type
protected

Definition at line 158 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ Int64Type

IntType clang::TransferrableTargetInfo::Int64Type
protected

◆ IntAlign

unsigned char clang::TransferrableTargetInfo::IntAlign

◆ IntMaxType

IntType clang::TransferrableTargetInfo::IntMaxType
protected

◆ IntPtrType

IntType clang::TransferrableTargetInfo::IntPtrType
protected

◆ IntWidth

unsigned char clang::TransferrableTargetInfo::IntWidth

◆ LargeArrayAlign

unsigned char clang::TransferrableTargetInfo::LargeArrayAlign

Definition at line 95 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LargeArrayMinWidth

unsigned char clang::TransferrableTargetInfo::LargeArrayMinWidth

Definition at line 95 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LongAccumAlign

unsigned char clang::TransferrableTargetInfo::LongAccumAlign

Definition at line 107 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LongAccumScale

unsigned char clang::TransferrableTargetInfo::LongAccumScale

Definition at line 128 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LongAccumWidth

unsigned char clang::TransferrableTargetInfo::LongAccumWidth

Definition at line 107 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LongAlign

unsigned char clang::TransferrableTargetInfo::LongAlign

◆ LongDoubleAlign

unsigned char clang::TransferrableTargetInfo::LongDoubleAlign

◆ LongDoubleFormat

const llvm::fltSemantics * clang::TransferrableTargetInfo::LongDoubleFormat

◆ LongDoubleWidth

unsigned char clang::TransferrableTargetInfo::LongDoubleWidth

◆ LongFractAlign

unsigned char clang::TransferrableTargetInfo::LongFractAlign

Definition at line 110 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LongFractWidth

unsigned char clang::TransferrableTargetInfo::LongFractWidth

Definition at line 110 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ LongLongAlign

unsigned char clang::TransferrableTargetInfo::LongLongAlign

◆ LongLongWidth

unsigned char clang::TransferrableTargetInfo::LongLongWidth

◆ LongWidth

unsigned char clang::TransferrableTargetInfo::LongWidth

◆ MaxAlignedAttribute

unsigned clang::TransferrableTargetInfo::MaxAlignedAttribute
protected

If non-zero, specifies a maximum alignment to truncate alignment specified in the aligned attribute of a static variable to this value.

Definition at line 200 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ MaxTLSAlign

unsigned clang::TransferrableTargetInfo::MaxTLSAlign

Definition at line 136 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ MaxVectorAlign

unsigned clang::TransferrableTargetInfo::MaxVectorAlign

◆ MinGlobalAlign

unsigned char clang::TransferrableTargetInfo::MinGlobalAlign

◆ NewAlign

unsigned short clang::TransferrableTargetInfo::NewAlign

◆ PaddingOnUnsignedFixedPoint

bool clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint

Definition at line 117 of file TargetInfo.h.

Referenced by clang::TargetInfo::adjust(), and clang::TargetInfo::TargetInfo().

◆ PointerAlign

unsigned char clang::TransferrableTargetInfo::PointerAlign

◆ PointerWidth

unsigned char clang::TransferrableTargetInfo::PointerWidth

◆ ProcessIDType

IntType clang::TransferrableTargetInfo::ProcessIDType
protected

◆ PtrDiffType

IntType clang::TransferrableTargetInfo::PtrDiffType
protected

◆ ShortAccumAlign

unsigned char clang::TransferrableTargetInfo::ShortAccumAlign

Definition at line 105 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ ShortAccumScale

unsigned char clang::TransferrableTargetInfo::ShortAccumScale

Definition at line 126 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ ShortAccumWidth

unsigned char clang::TransferrableTargetInfo::ShortAccumWidth

Definition at line 105 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ ShortFractAlign

unsigned char clang::TransferrableTargetInfo::ShortFractAlign

Definition at line 108 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ ShortFractWidth

unsigned char clang::TransferrableTargetInfo::ShortFractWidth

Definition at line 108 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ SigAtomicType

IntType clang::TransferrableTargetInfo::SigAtomicType
protected

◆ SizeType

IntType clang::TransferrableTargetInfo::SizeType
protected

◆ SuitableAlign

unsigned short clang::TransferrableTargetInfo::SuitableAlign

◆ UseBitFieldTypeAlignment

unsigned clang::TransferrableTargetInfo::UseBitFieldTypeAlignment
protected

Control whether the alignment of bit-field types is respected when laying out structures.

If true, then the alignment of the bit-field type will be used to (a) impact the alignment of the containing structure, and (b) ensure that the individual bit-field will not straddle an alignment boundary.

Definition at line 174 of file TargetInfo.h.

Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::TargetInfo::adjust(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and clang::TargetInfo::TargetInfo().

◆ UseExplicitBitFieldAlignment

unsigned clang::TransferrableTargetInfo::UseExplicitBitFieldAlignment
protected

Whether explicit bit field alignment attributes are honored.

Definition at line 192 of file TargetInfo.h.

Referenced by clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and clang::TargetInfo::TargetInfo().

◆ UseLeadingZeroLengthBitfield

unsigned clang::TransferrableTargetInfo::UseLeadingZeroLengthBitfield
protected

Whether zero length bitfield alignment is respected if they are the leading members.

Definition at line 188 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ UseSignedCharForObjCBool

unsigned clang::TransferrableTargetInfo::UseSignedCharForObjCBool
protected

Whether Objective-C's built-in boolean type should be signed char.

Otherwise, when this flag is not set, the normal built-in boolean type is used.

Definition at line 166 of file TargetInfo.h.

Referenced by clang::TargetInfo::TargetInfo().

◆ UseZeroLengthBitfieldAlignment

unsigned clang::TransferrableTargetInfo::UseZeroLengthBitfieldAlignment
protected

Whether zero length bitfields (e.g., int : 0;) force alignment of the next bitfield.

If the alignment of the zero length bitfield is greater than the member that follows it, ‘bar’, ‘bar’ will be aligned as the type of the zero-length bitfield.

Definition at line 183 of file TargetInfo.h.

Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::ARMTargetInfo::ARMTargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and clang::TargetInfo::TargetInfo().

◆ WCharType

IntType clang::TransferrableTargetInfo::WCharType
protected

◆ WIntType

IntType clang::TransferrableTargetInfo::WIntType
protected

◆ ZeroLengthBitfieldBoundary

unsigned clang::TransferrableTargetInfo::ZeroLengthBitfieldBoundary
protected

If non-zero, specifies a fixed alignment value for bitfields that follow zero length bitfield, regardless of the zero length bitfield type.

Definition at line 196 of file TargetInfo.h.

Referenced by clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and clang::TargetInfo::TargetInfo().


The documentation for this struct was generated from the following file: