class X86_64TargetInfo
Declaration
class X86_64TargetInfo : public X86TargetInfo { /* full declaration omitted */ };
Description
Exposes information about the current target.
Declared at: clang/lib/Basic/Targets/X86.h:679
Inherits from: X86TargetInfo
Member Variables
Inherited from X86TargetInfo:
- protected CPU = llvm::X86::CK_None
- protected FPMath = FP_Default
Inherited from TargetInfo:
- protected BigEndian
- protected TLSSupported
- protected VLASupported
- protected NoAsmVariants
- protected HasLegalHalfType
- protected HasFloat128
- protected HasFloat16
- protected HasBFloat16
- protected HasIbm128
- protected HasLongDouble
- protected HasFPReturn
- protected HasStrictFP
- protected MaxAtomicPromoteWidth
- protected MaxAtomicInlineWidth
- protected SimdDefaultAlign
- protected DataLayoutString
- protected UserLabelPrefix
- protected MCountName
- protected RegParmMax
- protected SSERegParmMax
- protected TheCXXABI
- protected AddrSpaceMap
- protected ProgramAddrSpace
- protected PlatformName
- protected PlatformMinVersion
- protected HasAlignMac68kSupport
- protected RealTypeUsesObjCFPRetMask
- protected ComplexLongDoubleUsesFP2Ret
- protected HasBuiltinMSVaList
- protected IsRenderScriptTarget
- protected HasAArch64SVETypes
- protected HasRISCVVTypes
- protected AllowAMDGPUUnsafeFPAtomics
- protected ARMCDECoprocMask
- protected MaxOpenCLWorkGroupSize
- protected MaxBitIntWidth
- protected DarwinTargetVariantTriple
- protected UseAddrSpaceMapMangling
Inherited from TransferrableTargetInfo:
- public PointerWidth
- public PointerAlign
- public BoolWidth
- public BoolAlign
- public IntWidth
- public IntAlign
- public HalfWidth
- public HalfAlign
- public BFloat16Width
- public BFloat16Align
- public FloatWidth
- public FloatAlign
- public DoubleWidth
- public DoubleAlign
- public LongDoubleWidth
- public LongDoubleAlign
- public Float128Align
- public Ibm128Align
- public LargeArrayMinWidth
- public LargeArrayAlign
- public LongWidth
- public LongAlign
- public LongLongWidth
- public LongLongAlign
- public ShortAccumWidth
- public ShortAccumAlign
- public AccumWidth
- public AccumAlign
- public LongAccumWidth
- public LongAccumAlign
- public ShortFractWidth
- public ShortFractAlign
- public FractWidth
- public FractAlign
- public LongFractWidth
- public LongFractAlign
- public PaddingOnUnsignedFixedPoint
- public ShortAccumScale
- public AccumScale
- public LongAccumScale
- public DefaultAlignForAttributeAligned
- public MinGlobalAlign
- public SuitableAlign
- public NewAlign
- public MaxVectorAlign
- public MaxTLSAlign
- public HalfFormat
- public BFloat16Format
- public FloatFormat
- public DoubleFormat
- public LongDoubleFormat
- public Float128Format
- public Ibm128Format
- protected SizeType
- protected IntMaxType
- protected PtrDiffType
- protected IntPtrType
- protected WCharType
- protected WIntType
- protected Char16Type
- protected Char32Type
- protected Int64Type
- protected Int16Type
- protected SigAtomicType
- protected ProcessIDType
- protected UseSignedCharForObjCBool
- protected UseBitFieldTypeAlignment
- protected UseZeroLengthBitfieldAlignment
- protected UseLeadingZeroLengthBitfield
- protected UseExplicitBitFieldAlignment
- protected ZeroLengthBitfieldBoundary
- protected MaxAlignedAttribute
Method Overview
- public X86_64TargetInfo(const llvm::Triple & Triple, const clang::TargetOptions & Opts)
- public clang::TargetInfo::CallingConvCheckResult checkCallingConvention(clang::CallingConv CC) const
- public clang::TargetInfo::BuiltinVaListKind getBuiltinVaListKind() const
- public clang::CallingConv getDefaultCallingConv() const
- public int getEHDataRegisterNumber(unsigned int RegNo) const
- public unsigned int getRegisterWidth() const
- public ArrayRef<Builtin::Info> getTargetBuiltins() const
- public unsigned int getUnwindWordWidth() const
- public bool hasBitIntType() const
- public bool hasInt128Type() const
- public void setMaxAtomicWidth()
- public bool validateGlobalRegisterVariable(llvm::StringRef RegName, unsigned int RegSize, bool & HasSizeMismatch) const
Inherited from X86TargetInfo:
- public CPUSpecificManglingCharacter
- public checkArithmeticFenceSupported
- public checkCFProtectionBranchSupported
- public checkCFProtectionReturnSupported
- public checkCallingConvention
- public convertConstraint
- public fillValidCPUList
- public fillValidTuneCPUList
- public getABI
- public getBFloat16Mangling
- public getCPUCacheLineSize
- public getCPUSpecificCPUDispatchFeatures
- public getCPUSpecificTuneName
- public getClobbers
- public getConstraintRegister
- public getDefaultCallingConv
- public getFPEvalMethod
- public getGCCAddlRegNames
- public getGCCRegAliases
- public getGCCRegNames
- public getLongDoubleMangling
- public getPointerAlignV
- public getPointerWidthV
- public getTargetDefines
- public handleTargetFeatures
- public hasFeature
- public hasSjLjLowering
- public initFeatureMap
- public isSPRegName
- public isValidCPUName
- public isValidFeatureName
- public isValidTuneCPUName
- public multiVersionSortPriority
- public setCPU
- public setFPMath
- public setFeatureEnabled
- public setSupportedOpenCLOpts
- public supportSourceEvalMethod
- public supportsExtendIntArgs
- public supportsTargetAttributeTune
- public useFP16ConversionIntrinsics
- public validateAsmConstraint
- public validateCPUSpecificCPUDispatch
- public validateCpuIs
- public validateCpuSupports
- public validateGlobalRegisterVariable
- public validateInputSize
- public validateOperandSize
- public validateOutputSize
Inherited from TargetInfo:
- public CPUSpecificManglingCharacter
- public CreateTargetInfo
- public adjust
- public adjustTargetOptions
- public allowAMDGPUUnsafeFPAtomics
- public allowDebugInfoForExternalRef
- public allowsLargerPreferedTypeAlignment
- public checkArithmeticFenceSupported
- public checkCFProtectionBranchSupported
- public checkCFProtectionReturnSupported
- public checkCallingConvention
- public convertConstraint
- protected copyAuxTarget
- public defaultsToAIXPowerAlignment
- public doUnsignedFixedPointTypesHavePadding
- public fillValidCPUList
- public fillValidTuneCPUList
- public getABI
- public getARMCDECoprocMask
- public getAccumAlign
- public getAccumIBits
- public getAccumScale
- public getAccumWidth
- public getAddressSpaceMap
- public getBFloat16Align
- public getBFloat16Format
- public getBFloat16Mangling
- public getBFloat16Width
- public getBoolAlign
- public getBoolWidth
- public getBuiltinVaListKind
- public getCPUCacheLineSize
- public getCPUSpecificCPUDispatchFeatures
- public getCPUSpecificTuneName
- public getCUDABuiltinAddressSpace
- public getCXXABI
- public getCallingConvKind
- public getChar16Align
- public getChar16Type
- public getChar16Width
- public getChar32Align
- public getChar32Type
- public getChar32Width
- public getCharAlign
- public getCharWidth
- public getClobbers
- public getConstantAddressSpace
- public getConstraintRegister
- public getCorrespondingUnsignedType
- public getDWARFAddressSpace
- public getDarwinTargetVariantSDKVersion
- public getDarwinTargetVariantTriple
- public getDataLayoutString
- public getDefaultAlignForAttributeAligned
- public getDefaultCallingConv
- public getDoubleAlign
- public getDoubleFormat
- public getDoubleWidth
- public getEHDataRegisterNumber
- public getExnObjectAlignment
- public getFPEvalMethod
- public getFloat128Align
- public getFloat128Format
- public getFloat128Mangling
- public getFloat128Width
- public getFloatAlign
- public getFloatFormat
- public getFloatWidth
- public getFractAlign
- public getFractScale
- public getFractWidth
- protected getGCCAddlRegNames
- protected getGCCRegAliases
- protected getGCCRegNames
- public getGridValue
- public getHalfAlign
- public getHalfFormat
- public getHalfWidth
- public getIbm128Align
- public getIbm128Format
- public getIbm128Mangling
- public getIbm128Width
- public getInt16Type
- public getInt64Type
- public getIntAlign
- public getIntMaxTWidth
- public getIntMaxType
- public getIntPtrType
- public getIntTypeByWidth
- public getIntWidth
- public getLargeArrayAlign
- public getLargeArrayMinWidth
- public getLeastIntTypeByWidth
- public getLongAccumAlign
- public getLongAccumIBits
- public getLongAccumScale
- public getLongAccumWidth
- public getLongAlign
- public getLongDoubleAlign
- public getLongDoubleFormat
- public getLongDoubleMangling
- public getLongDoubleWidth
- public getLongFractAlign
- public getLongFractScale
- public getLongFractWidth
- public getLongLongAlign
- public getLongLongWidth
- public getLongWidth
- public getMCountName
- public getMaxAlignedAttribute
- public getMaxAtomicInlineWidth
- public getMaxAtomicPromoteWidth
- public getMaxBitIntWidth
- public getMaxOpenCLWorkGroupSize
- public getMaxPointerWidth
- public getMaxTLSAlign
- public getMaxVectorAlign
- public getMinGlobalAlign
- public getNewAlign
- public getNormalizedGCCRegisterName
- public getNullPointerValue
- public getOpenCLBuiltinAddressSpace
- public getOpenCLTypeAddrSpace
- public getPlatformMinVersion
- public getPlatformName
- public getPointerAlign
- protected getPointerAlignV
- public getPointerWidth
- protected getPointerWidthV
- public getProcessIDType
- public getProgramAddressSpace
- public getPtrDiffType
- protected getPtrDiffTypeV
- public getRealTypeByWidth
- public getRegParmMax
- public getRegisterWidth
- public getSDKVersion
- public getShortAccumAlign
- public getShortAccumIBits
- public getShortAccumScale
- public getShortAccumWidth
- public getShortAlign
- public getShortFractAlign
- public getShortFractScale
- public getShortFractWidth
- public getShortWidth
- public getSigAtomicType
- public getSignedSizeType
- public getSimdDefaultAlign
- public getSizeType
- public getStaticInitSectionSpecifier
- public getSuitableAlign
- public getSupportedOpenCLOpts
- public getSupportedOpenCLOpts
- public getTargetBuiltins
- public getTargetDefines
- public getTargetID
- public getTargetOpts
- public getTriple
- public getTypeAlign
- public getTypeConstantSuffix
- public getTypeFormatModifier
- public getTypeName
- public getTypeWidth
- public getUInt16Type
- public getUInt64Type
- public getUIntMaxType
- public getUIntPtrType
- public getUnsignedAccumIBits
- public getUnsignedAccumScale
- public getUnsignedFractScale
- public getUnsignedLongAccumIBits
- public getUnsignedLongAccumScale
- public getUnsignedLongFractScale
- public getUnsignedPtrDiffType
- public getUnsignedShortAccumIBits
- public getUnsignedShortAccumScale
- public getUnsignedShortFractScale
- public getUnwindWordWidth
- public getUserLabelPrefix
- public getVScaleRange
- public getVtblPtrAddressSpace
- public getWCharAlign
- public getWCharType
- public getWCharWidth
- public getWIntType
- public getZeroLengthBitfieldBoundary
- public handleAsmEscapedChar
- public handleTargetFeatures
- public hasAArch64SVETypes
- public hasAlignMac68kSupport
- public hasBFloat16Type
- public hasBitIntType
- public hasBuiltinAtomic
- public hasBuiltinMSVaList
- public hasFPReturn
- public hasFeature
- public hasFeatureEnabled
- public hasFloat128Type
- public hasFloat16Type
- public hasIbm128Type
- public hasInt128Type
- public hasLegalHalfType
- public hasLongDoubleType
- public hasNoAsmVariants
- public hasPS4DLLImportExport
- public hasProtectedVisibility
- public hasRISCVVTypes
- public hasSjLjLowering
- public hasStrictFP
- public initFeatureMap
- public isBigEndian
- public isBranchProtectionSupportedArch
- public isCLZForZeroUndef
- public isLittleEndian
- public isNan2008
- public isRenderScriptTarget
- public isSEHTrySupported
- public isSPRegName
- public isTLSSupported
- public isTypeSigned
- public isVLASupported
- public isValidCPUName
- public isValidClobber
- public isValidFeatureName
- public isValidGCCRegisterName
- public isValidTuneCPUName
- public multiVersionSortPriority
- public noSignedCharForObjCBool
- protected resetDataLayout
- public resolveSymbolicName
- public setABI
- public setAuxTarget
- public setCPU
- public setCommandLineOpenCLOpts
- public setFPMath
- public setFeatureEnabled
- public setMaxAtomicWidth
- public setSupportedOpenCLOpts
- public shouldDLLImportComdatSymbols
- public supportAllOpenCLOpts
- public supportSourceEvalMethod
- public supportsExtendIntArgs
- public supportsIFunc
- public supportsMultiVersioning
- public supportsTargetAttributeTune
- public useAddressSpaceMapMangling
- public useBitFieldTypeAlignment
- public useExplicitBitFieldAlignment
- public useFP16ConversionIntrinsics
- public useLeadingZeroLengthBitfield
- public useObjCFP2RetForComplexLongDouble
- public useObjCFPRetForRealType
- public useSignedCharForObjCBool
- public useZeroLengthBitfieldAlignment
- public validateAsmConstraint
- public validateBranchProtection
- public validateCPUSpecificCPUDispatch
- public validateConstraintModifier
- public validateCpuIs
- public validateCpuSupports
- public validateGlobalRegisterVariable
- public validateInputConstraint
- public validateInputSize
- public validateOpenCLTarget
- public validateOutputConstraint
- public validateOutputSize
- public validateTarget
Methods
¶X86_64TargetInfo(const llvm::Triple& Triple,
const clang::TargetOptions& Opts)
X86_64TargetInfo(const llvm::Triple& Triple,
const clang::TargetOptions& Opts)
Declared at: clang/lib/Basic/Targets/X86.h:681
Parameters
- const llvm::Triple& Triple
- const clang::TargetOptions& Opts
¶clang::TargetInfo::CallingConvCheckResult
checkCallingConvention(
clang::CallingConv CC) const
clang::TargetInfo::CallingConvCheckResult
checkCallingConvention(
clang::CallingConv CC) const
Description
Determines whether a given calling convention is valid for the target. A calling convention can either be accepted, produce a warning and be substituted with the default calling convention, or (someday) produce an error (such as using thiscall on a non-instance function).
Declared at: clang/lib/Basic/Targets/X86.h:733
Parameters
- clang::CallingConv CC
¶clang::TargetInfo::BuiltinVaListKind
getBuiltinVaListKind() const
clang::TargetInfo::BuiltinVaListKind
getBuiltinVaListKind() const
Description
Returns the kind of __builtin_va_list type that should be used with this target.
Declared at: clang/lib/Basic/Targets/X86.h:721
¶clang::CallingConv getDefaultCallingConv() const
clang::CallingConv getDefaultCallingConv() const
Description
Gets the default calling convention for the given target and declaration context.
Declared at: clang/lib/Basic/Targets/X86.h:751
¶int getEHDataRegisterNumber(
unsigned int RegNo) const
int getEHDataRegisterNumber(
unsigned int RegNo) const
Description
Return the register number that __builtin_eh_return_regno would return with the specified argument. This corresponds with TargetLowering's getExceptionPointerRegister and getExceptionSelectorRegister in the backend.
Declared at: clang/lib/Basic/Targets/X86.h:725
Parameters
- unsigned int RegNo
¶unsigned int getRegisterWidth() const
unsigned int getRegisterWidth() const
Description
Return the "preferred" register width on this target.
Declared at: clang/lib/Basic/Targets/X86.h:760
¶ArrayRef<Builtin::Info> getTargetBuiltins() const
ArrayRef<Builtin::Info> getTargetBuiltins() const
Description
Return information about target-specific builtins for the current primary target, and info about which builtins are non-portable across the current set of primary and secondary targets.
Declared at: clang/lib/Basic/Targets/X86.h:782
¶unsigned int getUnwindWordWidth() const
unsigned int getUnwindWordWidth() const
Declared at: clang/lib/Basic/Targets/X86.h:758
¶bool hasBitIntType() const
bool hasBitIntType() const
Description
Determine whether the _BitInt type is supported on this target. This limitation is put into place for ABI reasons. FIXME: _BitInt is a required type in C23, so there's not much utility in asking whether the target supported it or not; I think this should be removed once backends have been alerted to the type and have had the chance to do implementation work if needed.
Declared at: clang/lib/Basic/Targets/X86.h:784
¶bool hasInt128Type() const
bool hasInt128Type() const
Description
Determine whether the __int128 type is supported on this target.
Declared at: clang/lib/Basic/Targets/X86.h:756
¶void setMaxAtomicWidth()
void setMaxAtomicWidth()
Description
Set the maximum inline or promote width lock-free atomic operation for the given target.
Declared at: clang/lib/Basic/Targets/X86.h:777
¶bool validateGlobalRegisterVariable(
llvm::StringRef RegName,
unsigned int RegSize,
bool& HasSizeMismatch) const
bool validateGlobalRegisterVariable(
llvm::StringRef RegName,
unsigned int RegSize,
bool& HasSizeMismatch) const
Description
Validate register name used for global register variables. This function returns true if the register passed in RegName can be used for global register variables on this target. In addition, it returns true in HasSizeMismatch if the size of the register doesn't match the variable size passed in RegSize.
Declared at: clang/lib/Basic/Targets/X86.h:762
Parameters
- llvm::StringRef RegName
- unsigned int RegSize
- bool& HasSizeMismatch