class AArch64TargetInfo
Declaration
class AArch64TargetInfo : public TargetInfo { /* full declaration omitted */ };
Description
Exposes information about the current target.
Declared at: clang/lib/Basic/Targets/AArch64.h:24
Inherits from: TargetInfo
Member Variables
- private unsigned int FPU
- private bool HasCRC
- private bool HasAES
- private bool HasSHA2
- private bool HasSHA3
- private bool HasSM4
- private bool HasUnaligned
- private bool HasFullFP16
- private bool HasDotProd
- private bool HasFP16FML
- private bool HasMTE
- private bool HasTME
- private bool HasPAuth
- private bool HasLS64
- private bool HasRandGen
- private bool HasMatMul
- private bool HasSVE2
- private bool HasSVE2AES
- private bool HasSVE2SHA3
- private bool HasSVE2SM4
- private bool HasSVE2BitPerm
- private bool HasMatmulFP64
- private bool HasMatmulFP32
- private bool HasLSE
- private bool HasFlagM
- private bool HasMOPS
- private llvm::AArch64::ArchKind ArchKind
- private std::string ABI
- private static const TargetInfo::GCCRegAlias[] GCCRegAliases
- private static const char* const[] GCCRegNames
- private static const Builtin::Info[] BuiltinInfo
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 AArch64TargetInfo(const llvm::Triple & Triple, const clang::TargetOptions & Opts)
- public clang::TargetInfo::CallingConvCheckResult checkCallingConvention(clang::CallingConv CC) const
- public std::string convertConstraint(const char *& Constraint) const
- public void fillValidCPUList(SmallVectorImpl<llvm::StringRef> & Values) const
- public llvm::StringRef getABI() const
- private llvm::StringRef getArchProfile() const
- public const char * getBFloat16Mangling() const
- public clang::TargetInfo::BuiltinVaListKind getBuiltinVaListKind() const
- public const char * getClobbers() const
- public llvm::StringRef getConstraintRegister(llvm::StringRef Constraint, llvm::StringRef Expression) const
- public int getEHDataRegisterNumber(unsigned int RegNo) const
- public ArrayRef<TargetInfo::GCCRegAlias> getGCCRegAliases() const
- public ArrayRef<const char *> getGCCRegNames() const
- public ArrayRef<Builtin::Info> getTargetBuiltins() const
- public void getTargetDefines(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV81A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV82A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV83A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV84A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV85A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV86A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV87A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV88A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV91A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV92A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV93A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public void getTargetDefinesARMV9A(const clang::LangOptions & Opts, clang::MacroBuilder & Builder) const
- public Optional<std::pair<unsigned int, unsigned int>> getVScaleRange(const clang::LangOptions & LangOpts) const
- public bool handleTargetFeatures(std::vector<std::string> & Features, clang::DiagnosticsEngine & Diags)
- public bool hasBitIntType() const
- public bool hasFeature(llvm::StringRef Feature) const
- public bool hasInt128Type() const
- public bool isCLZForZeroUndef() const
- public bool isValidCPUName(llvm::StringRef Name) const
- public bool setABI(const std::string & Name)
- public bool setCPU(const std::string & Name)
- private virtual void setDataLayout()
- public bool useFP16ConversionIntrinsics() const
- public bool validateAsmConstraint(const char *& Name, TargetInfo::ConstraintInfo & Info) const
- public bool validateBranchProtection(llvm::StringRef Spec, llvm::StringRef Arch, clang::TargetInfo::BranchProtectionInfo & BPI, llvm::StringRef & Err) const
- public bool validateConstraintModifier(llvm::StringRef Constraint, char Modifier, unsigned int Size, std::string & SuggestedModifier) const
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
¶AArch64TargetInfo(
const llvm::Triple& Triple,
const clang::TargetOptions& Opts)
AArch64TargetInfo(
const llvm::Triple& Triple,
const clang::TargetOptions& Opts)
Declared at: clang/lib/Basic/Targets/AArch64.h:66
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/AArch64.h:119
Parameters
- clang::CallingConv CC
¶std::string convertConstraint(
const char*& Constraint) const
std::string convertConstraint(
const char*& Constraint) const
Declared at: clang/lib/Basic/Targets/AArch64.h:128
Parameters
- const char*& Constraint
¶void fillValidCPUList(
SmallVectorImpl<llvm::StringRef>& Values)
const
void fillValidCPUList(
SmallVectorImpl<llvm::StringRef>& Values)
const
Description
Fill a SmallVectorImpl with the valid values to setCPU.
Declared at: clang/lib/Basic/Targets/AArch64.h:76
Parameters
- SmallVectorImpl<llvm::StringRef>& Values
¶llvm::StringRef getABI() const
llvm::StringRef getABI() const
Description
Get the ABI currently in use.
Declared at: clang/lib/Basic/Targets/AArch64.h:68
¶llvm::StringRef getArchProfile() const
llvm::StringRef getArchProfile() const
Declared at: clang/lib/Basic/Targets/AArch64.h:63
¶const char* getBFloat16Mangling() const
const char* getBFloat16Mangling() const
Description
Return the mangled code of bfloat.
Declared at: clang/lib/Basic/Targets/AArch64.h:156
¶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/AArch64.h:123
¶const char* getClobbers() const
const char* getClobbers() const
Description
Returns a string of target-specific clobbers, in LLVM format.
Declared at: clang/lib/Basic/Targets/AArch64.h:147
¶llvm::StringRef getConstraintRegister(
llvm::StringRef Constraint,
llvm::StringRef Expression) const
llvm::StringRef getConstraintRegister(
llvm::StringRef Constraint,
llvm::StringRef Expression) const
Description
Extracts a register from the passed constraint (if it is a single-register constraint) and the asm label expression related to a variable in the input or output list of an inline asm statement. This function is used by Sema in order to diagnose conflicts between the clobber list and the input/output lists.
Declared at: clang/lib/Basic/Targets/AArch64.h:149
Parameters
- llvm::StringRef Constraint
- llvm::StringRef Expression
¶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/AArch64.h:154
Parameters
- unsigned int RegNo
¶ArrayRef<TargetInfo::GCCRegAlias>
getGCCRegAliases() const
ArrayRef<TargetInfo::GCCRegAlias>
getGCCRegAliases() const
Declared at: clang/lib/Basic/Targets/AArch64.h:126
¶ArrayRef<const char*> getGCCRegNames() const
ArrayRef<const char*> getGCCRegNames() const
Declared at: clang/lib/Basic/Targets/AArch64.h:125
¶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/AArch64.h:110
¶void getTargetDefines(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefines(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Description
Appends the target-specific # define values for this target set to the specified buffer.
Declared at: clang/lib/Basic/Targets/AArch64.h:107
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV81A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV81A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:83
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV82A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV82A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:85
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV83A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV83A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:87
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV84A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV84A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:89
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV85A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV85A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:91
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV86A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV86A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:93
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV87A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV87A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:95
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV88A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV88A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:97
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV91A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV91A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:101
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV92A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV92A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:103
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV93A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV93A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:105
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶void getTargetDefinesARMV9A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
void getTargetDefinesARMV9A(
const clang::LangOptions& Opts,
clang::MacroBuilder& Builder) const
Declared at: clang/lib/Basic/Targets/AArch64.h:99
Parameters
- const clang::LangOptions& Opts
- clang::MacroBuilder& Builder
¶Optional<std::pair<unsigned int, unsigned int>>
getVScaleRange(
const clang::LangOptions& LangOpts) const
Optional<std::pair<unsigned int, unsigned int>>
getVScaleRange(
const clang::LangOptions& LangOpts) const
Description
Returns target-specific min and max values VScale_Range.
Declared at: clang/lib/Basic/Targets/AArch64.h:113
Parameters
- const clang::LangOptions& LangOpts
¶bool handleTargetFeatures(
std::vector<std::string>& Features,
clang::DiagnosticsEngine& Diags)
bool handleTargetFeatures(
std::vector<std::string>& Features,
clang::DiagnosticsEngine& Diags)
Description
Perform initialization based on the user configured set of features (e.g., +sse4). The list is guaranteed to have at most one entry per feature. The target may modify the features list, to change which options are passed onwards to the backend. FIXME: This part should be fixed so that we can change handleTargetFeatures to merely a TargetInfo initialization routine.
Declared at: clang/lib/Basic/Targets/AArch64.h:116
Parameters
- std::vector<std::string>& Features
- clang::DiagnosticsEngine& Diags
Returns
False on error.
¶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/AArch64.h:159
¶bool hasFeature(llvm::StringRef Feature) const
bool hasFeature(llvm::StringRef Feature) const
Description
Determine whether the given target has the given feature.
Declared at: clang/lib/Basic/Targets/AArch64.h:115
Parameters
- llvm::StringRef Feature
¶bool hasInt128Type() const
bool hasInt128Type() const
Description
Determine whether the __int128 type is supported on this target.
Declared at: clang/lib/Basic/Targets/AArch64.h:157
¶bool isCLZForZeroUndef() const
bool isCLZForZeroUndef() const
Description
The __builtin_clz* and __builtin_ctz* built-in functions are specified to have undefined results for zero inputs, but on targets that support these operations in a way that provides well-defined results for zero without loss of performance, it is a good idea to avoid optimizing based on that undef behavior.
Declared at: clang/lib/Basic/Targets/AArch64.h:121
¶bool isValidCPUName(llvm::StringRef Name) const
bool isValidCPUName(llvm::StringRef Name) const
Description
brief Determine whether this TargetInfo supports the given CPU name.
Declared at: clang/lib/Basic/Targets/AArch64.h:75
Parameters
- llvm::StringRef Name
¶bool setABI(const std::string& Name)
bool setABI(const std::string& Name)
Description
Use the specified ABI.
Declared at: clang/lib/Basic/Targets/AArch64.h:69
Parameters
- const std::string& Name
Returns
False on error (invalid ABI name).
¶bool setCPU(const std::string& Name)
bool setCPU(const std::string& Name)
Description
Target the specified CPU.
Declared at: clang/lib/Basic/Targets/AArch64.h:77
Parameters
- const std::string& Name
Returns
False on error (invalid CPU name).
¶virtual void setDataLayout()
virtual void setDataLayout()
Declared at: clang/lib/Basic/Targets/AArch64.h:25
¶bool useFP16ConversionIntrinsics() const
bool useFP16ConversionIntrinsics() const
Description
Check whether llvm intrinsics such as llvm.convert.to.fp16 should be used to convert to and from __fp16. FIXME: This function should be removed once all targets stop using the conversion intrinsics.
Declared at: clang/lib/Basic/Targets/AArch64.h:79
¶bool validateAsmConstraint(
const char*& Name,
TargetInfo::ConstraintInfo& Info) const
bool validateAsmConstraint(
const char*& Name,
TargetInfo::ConstraintInfo& Info) const
Declared at: clang/lib/Basic/Targets/AArch64.h:142
Parameters
- const char*& Name
- TargetInfo::ConstraintInfo& Info
¶bool validateBranchProtection(
llvm::StringRef Spec,
llvm::StringRef Arch,
clang::TargetInfo::BranchProtectionInfo& BPI,
llvm::StringRef& Err) const
bool validateBranchProtection(
llvm::StringRef Spec,
llvm::StringRef Arch,
clang::TargetInfo::BranchProtectionInfo& BPI,
llvm::StringRef& Err) const
Description
Determine if this TargetInfo supports the given branch protection specification
Declared at: clang/lib/Basic/Targets/AArch64.h:71
Parameters
- llvm::StringRef Spec
- llvm::StringRef Arch
- clang::TargetInfo::BranchProtectionInfo& BPI
- llvm::StringRef& Err
¶bool validateConstraintModifier(
llvm::StringRef Constraint,
char Modifier,
unsigned int Size,
std::string& SuggestedModifier) const
bool validateConstraintModifier(
llvm::StringRef Constraint,
char Modifier,
unsigned int Size,
std::string& SuggestedModifier) const
Declared at: clang/lib/Basic/Targets/AArch64.h:145
Parameters
- llvm::StringRef Constraint
- char Modifier
- unsigned int Size
- std::string& SuggestedModifier