clang 20.0.0git
|
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Basic/Targets/AArch64.h"
Public Member Functions | |
AArch64TargetInfo (const llvm::Triple &Triple, const TargetOptions &Opts) | |
StringRef | getABI () const override |
Get the ABI currently in use. | |
bool | setABI (const std::string &Name) override |
Use the specified ABI. | |
bool | validateBranchProtection (StringRef Spec, StringRef Arch, BranchProtectionInfo &BPI, StringRef &Err) const override |
Determine if this TargetInfo supports the given branch protection specification. | |
bool | isValidCPUName (StringRef Name) const override |
Determine whether this TargetInfo supports the given CPU name. | |
void | fillValidCPUList (SmallVectorImpl< StringRef > &Values) const override |
Fill a SmallVectorImpl with the valid values to setCPU. | |
bool | setCPU (const std::string &Name) override |
Target the specified CPU. | |
unsigned | multiVersionSortPriority (StringRef Name) const override |
unsigned | multiVersionFeatureCost () const override |
bool | useFP16ConversionIntrinsics () const override |
Check whether llvm intrinsics such as llvm.convert.to.fp16 should be used to convert to and from __fp16. | |
void | setArchFeatures () |
void | getTargetDefinesARMV81A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV82A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV83A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV84A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV85A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV86A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV87A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV88A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV89A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV9A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV91A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV92A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV93A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV94A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefinesARMV95A (const LangOptions &Opts, MacroBuilder &Builder) const |
void | getTargetDefines (const LangOptions &Opts, MacroBuilder &Builder) const override |
===-— Other target property query methods -----------------------—===// | |
ArrayRef< Builtin::Info > | getTargetBuiltins () const override |
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. | |
std::optional< std::pair< unsigned, unsigned > > | getVScaleRange (const LangOptions &LangOpts) const override |
Returns target-specific min and max values VScale_Range. | |
bool | doesFeatureAffectCodeGen (StringRef Name) const override |
Returns true if feature has an impact on target code generation. | |
bool | validateCpuSupports (StringRef FeatureStr) const override |
bool | hasFeature (StringRef Feature) const override |
Determine whether the given target has the given feature. | |
void | setFeatureEnabled (llvm::StringMap< bool > &Features, StringRef Name, bool Enabled) const override |
Enable or disable a specific target feature; the feature name must be valid. | |
bool | handleTargetFeatures (std::vector< std::string > &Features, DiagnosticsEngine &Diags) override |
Perform initialization based on the user configured set of features (e.g., +sse4). | |
ParsedTargetAttr | parseTargetAttr (StringRef Str) const override |
bool | supportsTargetAttributeTune () const override |
Determine whether this TargetInfo supports tune in target attribute. | |
bool | supportsCpuSupports () const override |
bool | checkArithmeticFenceSupported () const override |
Controls if __arithmetic_fence is supported in the targeted backend. | |
bool | hasBFloat16Type () const override |
Determine whether the _BFloat16 type is supported on this target. | |
CallingConvCheckResult | checkCallingConvention (CallingConv CC) const override |
Determines whether a given calling convention is valid for the target. | |
bool | isCLZForZeroUndef () const override |
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. | |
BuiltinVaListKind | getBuiltinVaListKind () const override |
Returns the kind of __builtin_va_list type that should be used with this target. | |
ArrayRef< const char * > | getGCCRegNames () const override |
ArrayRef< TargetInfo::GCCRegAlias > | getGCCRegAliases () const override |
std::string | convertConstraint (const char *&Constraint) const override |
bool | validateAsmConstraint (const char *&Name, TargetInfo::ConstraintInfo &Info) const override |
bool | validateConstraintModifier (StringRef Constraint, char Modifier, unsigned Size, std::string &SuggestedModifier) const override |
std::string_view | getClobbers () const override |
Returns a string of target-specific clobbers, in LLVM format. | |
StringRef | getConstraintRegister (StringRef Constraint, StringRef Expression) const override |
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. | |
int | getEHDataRegisterNumber (unsigned RegNo) const override |
Return the register number that __builtin_eh_return_regno would return with the specified argument. | |
bool | validatePointerAuthKey (const llvm::APSInt &value) const override |
Determine whether the given pointer-authentication key is valid. | |
const char * | getBFloat16Mangling () const override |
Return the mangled code of bfloat. | |
bool | hasInt128Type () const override |
Determine whether the __int128 type is supported on this target. | |
bool | hasBitIntType () const override |
Determine whether the _BitInt type is supported on this target. | |
bool | validateTarget (DiagnosticsEngine &Diags) const override |
Check the target is valid after it is fully initialized. | |
bool | validateGlobalRegisterVariable (StringRef RegName, unsigned RegSize, bool &HasSizeMismatch) const override |
Validate register name used for global register variables. | |
Public Member Functions inherited from clang::TargetInfo | |
virtual | ~TargetInfo () |
TargetOptions & | getTargetOpts () const |
Retrieve the target options. | |
IntType | getSizeType () const |
IntType | getSignedSizeType () const |
IntType | getIntMaxType () const |
IntType | getUIntMaxType () const |
IntType | getPtrDiffType (LangAS AddrSpace) const |
IntType | getUnsignedPtrDiffType (LangAS AddrSpace) const |
IntType | getIntPtrType () const |
IntType | getUIntPtrType () const |
IntType | getWCharType () const |
IntType | getWIntType () const |
IntType | getChar16Type () const |
IntType | getChar32Type () const |
IntType | getInt64Type () const |
IntType | getUInt64Type () const |
IntType | getInt16Type () const |
IntType | getUInt16Type () const |
IntType | getSigAtomicType () const |
IntType | getProcessIDType () const |
bool | doUnsignedFixedPointTypesHavePadding () const |
In the event this target uses the same number of fractional bits for its unsigned types as it does with its signed counterparts, there will be exactly one bit of padding. | |
unsigned | getTypeWidth (IntType T) const |
Return the width (in bits) of the specified integer type enum. | |
virtual IntType | getIntTypeByWidth (unsigned BitWidth, bool IsSigned) const |
Return integer type with specified width. | |
virtual IntType | getLeastIntTypeByWidth (unsigned BitWidth, bool IsSigned) const |
Return the smallest integer type with at least the specified width. | |
FloatModeKind | getRealTypeByWidth (unsigned BitWidth, FloatModeKind ExplicitType) const |
Return floating point type with specified width. | |
unsigned | getTypeAlign (IntType T) const |
Return the alignment (in bits) of the specified integer type enum. | |
uint64_t | getPointerWidth (LangAS AddrSpace) const |
Return the width of pointers on this target, for the specified address space. | |
uint64_t | getPointerAlign (LangAS AddrSpace) const |
virtual uint64_t | getMaxPointerWidth () const |
Return the maximum width of pointers on this target. | |
virtual uint64_t | getNullPointerValue (LangAS AddrSpace) const |
Get integer value for null pointer. | |
unsigned | getBoolWidth () const |
Return the size of '_Bool' and C++ 'bool' for this target, in bits. | |
unsigned | getBoolAlign () const |
Return the alignment of '_Bool' and C++ 'bool' for this target. | |
unsigned | getCharWidth () const |
unsigned | getCharAlign () const |
unsigned | getShortWidth () const |
Return the size of 'signed short' and 'unsigned short' for this target, in bits. | |
unsigned | getShortAlign () const |
Return the alignment of 'signed short' and 'unsigned short' for this target. | |
unsigned | getIntWidth () const |
getIntWidth/Align - Return the size of 'signed int' and 'unsigned int' for this target, in bits. | |
unsigned | getIntAlign () const |
unsigned | getLongWidth () const |
getLongWidth/Align - Return the size of 'signed long' and 'unsigned long' for this target, in bits. | |
unsigned | getLongAlign () const |
unsigned | getLongLongWidth () const |
getLongLongWidth/Align - Return the size of 'signed long long' and 'unsigned long long' for this target, in bits. | |
unsigned | getLongLongAlign () const |
unsigned | getInt128Align () const |
getInt128Align() - Returns the alignment of Int128. | |
unsigned | getBitIntMaxAlign () const |
getBitIntMaxAlign() - Returns the maximum possible alignment of '_BitInt' and 'unsigned _BitInt'. | |
unsigned | getBitIntWidth (unsigned NumBits) const |
getBitIntAlign/Width - Return aligned size of '_BitInt' and 'unsigned _BitInt' for this target, in bits. | |
unsigned | getBitIntAlign (unsigned NumBits) const |
unsigned | getShortAccumWidth () const |
getShortAccumWidth/Align - Return the size of 'signed short _Accum' and 'unsigned short _Accum' for this target, in bits. | |
unsigned | getShortAccumAlign () const |
unsigned | getAccumWidth () const |
getAccumWidth/Align - Return the size of 'signed _Accum' and 'unsigned _Accum' for this target, in bits. | |
unsigned | getAccumAlign () const |
unsigned | getLongAccumWidth () const |
getLongAccumWidth/Align - Return the size of 'signed long _Accum' and 'unsigned long _Accum' for this target, in bits. | |
unsigned | getLongAccumAlign () const |
unsigned | getShortFractWidth () const |
getShortFractWidth/Align - Return the size of 'signed short _Fract' and 'unsigned short _Fract' for this target, in bits. | |
unsigned | getShortFractAlign () const |
unsigned | getFractWidth () const |
getFractWidth/Align - Return the size of 'signed _Fract' and 'unsigned _Fract' for this target, in bits. | |
unsigned | getFractAlign () const |
unsigned | getLongFractWidth () const |
getLongFractWidth/Align - Return the size of 'signed long _Fract' and 'unsigned long _Fract' for this target, in bits. | |
unsigned | getLongFractAlign () const |
unsigned | getShortAccumScale () const |
getShortAccumScale/IBits - Return the number of fractional/integral bits in a 'signed short _Accum' type. | |
unsigned | getShortAccumIBits () const |
unsigned | getAccumScale () const |
getAccumScale/IBits - Return the number of fractional/integral bits in a 'signed _Accum' type. | |
unsigned | getAccumIBits () const |
unsigned | getLongAccumScale () const |
getLongAccumScale/IBits - Return the number of fractional/integral bits in a 'signed long _Accum' type. | |
unsigned | getLongAccumIBits () const |
unsigned | getUnsignedShortAccumScale () const |
getUnsignedShortAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned short _Accum' type. | |
unsigned | getUnsignedShortAccumIBits () const |
unsigned | getUnsignedAccumScale () const |
getUnsignedAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned _Accum' type. | |
unsigned | getUnsignedAccumIBits () const |
unsigned | getUnsignedLongAccumScale () const |
getUnsignedLongAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned long _Accum' type. | |
unsigned | getUnsignedLongAccumIBits () const |
unsigned | getShortFractScale () const |
getShortFractScale - Return the number of fractional bits in a 'signed short _Fract' type. | |
unsigned | getFractScale () const |
getFractScale - Return the number of fractional bits in a 'signed _Fract' type. | |
unsigned | getLongFractScale () const |
getLongFractScale - Return the number of fractional bits in a 'signed long _Fract' type. | |
unsigned | getUnsignedShortFractScale () const |
getUnsignedShortFractScale - Return the number of fractional bits in a 'unsigned short _Fract' type. | |
unsigned | getUnsignedFractScale () const |
getUnsignedFractScale - Return the number of fractional bits in a 'unsigned _Fract' type. | |
unsigned | getUnsignedLongFractScale () const |
getUnsignedLongFractScale - Return the number of fractional bits in a 'unsigned long _Fract' type. | |
virtual bool | hasInt128Type () const |
Determine whether the __int128 type is supported on this target. | |
virtual bool | hasBitIntType () const |
Determine whether the _BitInt type is supported on this target. | |
virtual size_t | getMaxBitIntWidth () const |
virtual bool | hasLegalHalfType () const |
Determine whether _Float16 is supported on this target. | |
virtual bool | allowHalfArgsAndReturns () const |
Whether half args and returns are supported. | |
virtual bool | hasFloat128Type () const |
Determine whether the __float128 type is supported on this target. | |
virtual bool | hasFloat16Type () const |
Determine whether the _Float16 type is supported on this target. | |
virtual bool | hasBFloat16Type () const |
Determine whether the _BFloat16 type is supported on this target. | |
virtual bool | hasFullBFloat16Type () const |
Determine whether the BFloat type is fully supported on this target, i.e arithemtic operations. | |
virtual bool | hasIbm128Type () const |
Determine whether the __ibm128 type is supported on this target. | |
virtual bool | hasLongDoubleType () const |
Determine whether the long double type is supported on this target. | |
virtual bool | hasFPReturn () const |
Determine whether return of a floating point value is supported on this target. | |
virtual bool | hasStrictFP () const |
Determine whether constrained floating point is supported on this target. | |
unsigned | getSuitableAlign () const |
Return the alignment that is the largest alignment ever used for any scalar/SIMD data type on the target machine you are compiling for (including types with an extended alignment requirement). | |
unsigned | getDefaultAlignForAttributeAligned () const |
Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified. | |
virtual unsigned | getMinGlobalAlign (uint64_t Size, bool HasNonWeakDef) const |
getMinGlobalAlign - Return the minimum alignment of a global variable, unless its alignment is explicitly reduced via attributes. | |
unsigned | getNewAlign () const |
Return the largest alignment for which a suitably-sized allocation with '::operator new(size_t)' is guaranteed to produce a correctly-aligned pointer. | |
unsigned | getWCharWidth () const |
getWCharWidth/Align - Return the size of 'wchar_t' for this target, in bits. | |
unsigned | getWCharAlign () const |
unsigned | getChar16Width () const |
getChar16Width/Align - Return the size of 'char16_t' for this target, in bits. | |
unsigned | getChar16Align () const |
unsigned | getChar32Width () const |
getChar32Width/Align - Return the size of 'char32_t' for this target, in bits. | |
unsigned | getChar32Align () const |
unsigned | getHalfWidth () const |
getHalfWidth/Align/Format - Return the size/align/format of 'half'. | |
unsigned | getHalfAlign () const |
const llvm::fltSemantics & | getHalfFormat () const |
unsigned | getFloatWidth () const |
getFloatWidth/Align/Format - Return the size/align/format of 'float'. | |
unsigned | getFloatAlign () const |
const llvm::fltSemantics & | getFloatFormat () const |
unsigned | getBFloat16Width () const |
getBFloat16Width/Align/Format - Return the size/align/format of '__bf16'. | |
unsigned | getBFloat16Align () const |
const llvm::fltSemantics & | getBFloat16Format () const |
unsigned | getDoubleWidth () const |
getDoubleWidth/Align/Format - Return the size/align/format of 'double'. | |
unsigned | getDoubleAlign () const |
const llvm::fltSemantics & | getDoubleFormat () const |
unsigned | getLongDoubleWidth () const |
getLongDoubleWidth/Align/Format - Return the size/align/format of 'long double'. | |
unsigned | getLongDoubleAlign () const |
const llvm::fltSemantics & | getLongDoubleFormat () const |
unsigned | getFloat128Width () const |
getFloat128Width/Align/Format - Return the size/align/format of '__float128'. | |
unsigned | getFloat128Align () const |
const llvm::fltSemantics & | getFloat128Format () const |
unsigned | getIbm128Width () const |
getIbm128Width/Align/Format - Return the size/align/format of '__ibm128'. | |
unsigned | getIbm128Align () const |
const llvm::fltSemantics & | getIbm128Format () const |
virtual const char * | getLongDoubleMangling () const |
Return the mangled code of long double. | |
virtual const char * | getFloat128Mangling () const |
Return the mangled code of __float128. | |
virtual const char * | getIbm128Mangling () const |
Return the mangled code of __ibm128. | |
virtual const char * | getBFloat16Mangling () const |
Return the mangled code of bfloat. | |
virtual LangOptions::FPEvalMethodKind | getFPEvalMethod () const |
Return the value for the C99 FLT_EVAL_METHOD macro. | |
virtual bool | supportSourceEvalMethod () const |
unsigned | getLargeArrayMinWidth () const |
unsigned | getLargeArrayAlign () const |
unsigned | getMaxAtomicPromoteWidth () const |
Return the maximum width lock-free atomic operation which will ever be supported for the given target. | |
unsigned | getMaxAtomicInlineWidth () const |
Return the maximum width lock-free atomic operation which can be inlined given the supported features of the given target. | |
virtual void | setMaxAtomicWidth () |
Set the maximum inline or promote width lock-free atomic operation for the given target. | |
virtual bool | hasBuiltinAtomic (uint64_t AtomicSizeInBits, uint64_t AlignmentInBits) const |
Returns true if the given target supports lock-free atomic operations at the specified width and alignment. | |
unsigned | getMaxVectorAlign () const |
Return the maximum vector alignment supported for the given target. | |
unsigned | getMaxOpenCLWorkGroupSize () const |
virtual unsigned | getExnObjectAlignment () const |
Return the alignment (in bits) of the thrown exception object. | |
unsigned | getIntMaxTWidth () const |
Return the size of intmax_t and uintmax_t for this target, in bits. | |
virtual unsigned | getUnwindWordWidth () const |
virtual unsigned | getRegisterWidth () const |
Return the "preferred" register width on this target. | |
bool | hasUnalignedAccess () const |
Return true iff unaligned accesses are a single instruction (rather than a synthesized sequence). | |
bool | hasCheapUnalignedBitFieldAccess () const |
Return true iff unaligned accesses are cheap. | |
const char * | getUserLabelPrefix () const |
Returns the default value of the USER_LABEL_PREFIX macro, which is the prefix given to user symbols by default. | |
const char * | getMCountName () const |
Returns the name of the mcount instrumentation function. | |
bool | useSignedCharForObjCBool () const |
Check if the Objective-C built-in boolean type should be signed char. | |
void | noSignedCharForObjCBool () |
bool | useBitFieldTypeAlignment () const |
Check whether the alignment of bit-field types is respected when laying out structures. | |
bool | useZeroLengthBitfieldAlignment () const |
Check whether zero length bitfields should force alignment of the next member. | |
bool | useLeadingZeroLengthBitfield () const |
Check whether zero length bitfield alignment is respected if they are leading members. | |
unsigned | getZeroLengthBitfieldBoundary () const |
Get the fixed alignment value in bits for a member that follows a zero length bitfield. | |
unsigned | getMaxAlignedAttribute () const |
Get the maximum alignment in bits for a static variable with aligned attribute. | |
bool | useExplicitBitFieldAlignment () const |
Check whether explicit bitfield alignment attributes should be. | |
bool | hasAlignMac68kSupport () const |
Check whether this target support '#pragma options align=mac68k'. | |
const char * | getTypeConstantSuffix (IntType T) const |
Return the constant suffix for the specified integer type enum. | |
bool | useObjCFPRetForRealType (FloatModeKind T) const |
Check whether the given real type should use the "fpret" flavor of Objective-C message passing on this target. | |
bool | useObjCFP2RetForComplexLongDouble () const |
Check whether _Complex long double should use the "fp2ret" flavor of Objective-C message passing on this target. | |
virtual bool | useFP16ConversionIntrinsics () const |
Check whether llvm intrinsics such as llvm.convert.to.fp16 should be used to convert to and from __fp16. | |
bool | useAddressSpaceMapMangling () const |
Specify if mangling based on address space map should be used or not for language specific address spaces. | |
virtual void | getTargetDefines (const LangOptions &Opts, MacroBuilder &Builder) const =0 |
===-— Other target property query methods -----------------------—===// | |
virtual ArrayRef< Builtin::Info > | getTargetBuiltins () const =0 |
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. | |
virtual std::optional< std::pair< unsigned, unsigned > > | getVScaleRange (const LangOptions &LangOpts) const |
Returns target-specific min and max values VScale_Range. | |
virtual bool | isCLZForZeroUndef () const |
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. | |
virtual BuiltinVaListKind | getBuiltinVaListKind () const =0 |
Returns the kind of __builtin_va_list type that should be used with this target. | |
bool | hasBuiltinMSVaList () const |
Returns whether or not type __builtin_ms_va_list type is available on this target. | |
bool | isRenderScriptTarget () const |
Returns true for RenderScript. | |
bool | hasAArch64SVETypes () const |
Returns whether or not the AArch64 SVE built-in types are available on this target. | |
bool | hasRISCVVTypes () const |
Returns whether or not the RISC-V V built-in types are available on this target. | |
bool | allowAMDGPUUnsafeFPAtomics () const |
Returns whether or not the AMDGPU unsafe floating point atomics are allowed. | |
uint32_t | getARMCDECoprocMask () const |
For ARM targets returns a mask defining which coprocessors are configured as Custom Datapath. | |
bool | isValidClobber (StringRef Name) const |
Returns whether the passed in string is a valid clobber in an inline asm statement. | |
virtual bool | isValidGCCRegisterName (StringRef Name) const |
Returns whether the passed in string is a valid register name according to GCC. | |
StringRef | getNormalizedGCCRegisterName (StringRef Name, bool ReturnCanonical=false) const |
Returns the "normalized" GCC register name. | |
virtual bool | isSPRegName (StringRef) const |
virtual StringRef | getConstraintRegister (StringRef Constraint, StringRef Expression) const |
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. | |
virtual bool | validateGlobalRegisterVariable (StringRef RegName, unsigned RegSize, bool &HasSizeMismatch) const |
Validate register name used for global register variables. | |
bool | validateOutputConstraint (ConstraintInfo &Info) const |
bool | validateInputConstraint (MutableArrayRef< ConstraintInfo > OutputConstraints, ConstraintInfo &info) const |
virtual bool | validateOutputSize (const llvm::StringMap< bool > &FeatureMap, StringRef, unsigned) const |
virtual bool | validateInputSize (const llvm::StringMap< bool > &FeatureMap, StringRef, unsigned) const |
virtual bool | validateConstraintModifier (StringRef, char, unsigned, std::string &) const |
virtual bool | validateAsmConstraint (const char *&Name, TargetInfo::ConstraintInfo &info) const =0 |
bool | resolveSymbolicName (const char *&Name, ArrayRef< ConstraintInfo > OutputConstraints, unsigned &Index) const |
virtual std::string | convertConstraint (const char *&Constraint) const |
virtual std::optional< std::string > | handleAsmEscapedChar (char C) const |
Replace some escaped characters with another string based on target-specific rules. | |
virtual std::string_view | getClobbers () const =0 |
Returns a string of target-specific clobbers, in LLVM format. | |
virtual bool | isNan2008 () const |
Returns true if NaN encoding is IEEE 754-2008. | |
const llvm::Triple & | getTriple () const |
Returns the target triple of the primary target. | |
virtual std::optional< std::string > | getTargetID () const |
Returns the target ID if supported. | |
const char * | getDataLayoutString () const |
virtual bool | hasProtectedVisibility () const |
Does this target support "protected" visibility? | |
virtual bool | shouldDLLImportComdatSymbols () const |
Does this target aim for semantic compatibility with Microsoft C++ code using dllimport/export attributes? | |
virtual bool | hasPS4DLLImportExport () const |
virtual void | adjust (DiagnosticsEngine &Diags, LangOptions &Opts) |
Set forced language options. | |
virtual bool | initFeatureMap (llvm::StringMap< bool > &Features, DiagnosticsEngine &Diags, StringRef CPU, const std::vector< std::string > &FeatureVec) const |
Initialize the map with the default set of target features for the CPU this should include all legal feature strings on the target. | |
virtual StringRef | getABI () const |
Get the ABI currently in use. | |
TargetCXXABI | getCXXABI () const |
Get the C++ ABI currently in use. | |
virtual bool | setCPU (const std::string &Name) |
Target the specified CPU. | |
virtual void | fillValidCPUList (SmallVectorImpl< StringRef > &Values) const |
Fill a SmallVectorImpl with the valid values to setCPU. | |
virtual void | fillValidTuneCPUList (SmallVectorImpl< StringRef > &Values) const |
Fill a SmallVectorImpl with the valid values for tuning CPU. | |
virtual bool | isValidCPUName (StringRef Name) const |
Determine whether this TargetInfo supports the given CPU name. | |
virtual bool | isValidTuneCPUName (StringRef Name) const |
Determine whether this TargetInfo supports the given CPU name for tuning. | |
virtual ParsedTargetAttr | parseTargetAttr (StringRef Str) const |
virtual bool | supportsTargetAttributeTune () const |
Determine whether this TargetInfo supports tune in target attribute. | |
virtual bool | setABI (const std::string &Name) |
Use the specified ABI. | |
virtual bool | setFPMath (StringRef Name) |
Use the specified unit for FP math. | |
virtual bool | hasFeatureEnabled (const llvm::StringMap< bool > &Features, StringRef Name) const |
Check if target has a given feature enabled. | |
virtual void | setFeatureEnabled (llvm::StringMap< bool > &Features, StringRef Name, bool Enabled) const |
Enable or disable a specific target feature; the feature name must be valid. | |
virtual bool | isValidFeatureName (StringRef Feature) const |
Determine whether this TargetInfo supports the given feature. | |
virtual bool | doesFeatureAffectCodeGen (StringRef Feature) const |
Returns true if feature has an impact on target code generation. | |
virtual bool | isBranchProtectionSupportedArch (StringRef Arch) const |
Determine if the Architecture in this TargetInfo supports branch protection. | |
virtual bool | validateBranchProtection (StringRef Spec, StringRef Arch, BranchProtectionInfo &BPI, StringRef &Err) const |
Determine if this TargetInfo supports the given branch protection specification. | |
virtual bool | handleTargetFeatures (std::vector< std::string > &Features, DiagnosticsEngine &Diags) |
Perform initialization based on the user configured set of features (e.g., +sse4). | |
virtual bool | hasFeature (StringRef Feature) const |
Determine whether the given target has the given feature. | |
bool | isReadOnlyFeature (StringRef Feature) const |
Determine whether the given target feature is read only. | |
bool | supportsMultiVersioning () const |
Identify whether this target supports multiversioning of functions, which requires support for cpu_supports and cpu_is functionality. | |
bool | supportsIFunc () const |
Identify whether this target supports IFuncs. | |
virtual bool | supportsCpuSupports () const |
virtual bool | supportsCpuIs () const |
virtual bool | supportsCpuInit () const |
virtual bool | validateCpuSupports (StringRef Name) const |
virtual unsigned | multiVersionSortPriority (StringRef Name) const |
virtual unsigned | multiVersionFeatureCost () const |
virtual bool | validateCpuIs (StringRef Name) const |
virtual bool | validateCPUSpecificCPUDispatch (StringRef Name) const |
virtual char | CPUSpecificManglingCharacter (StringRef Name) const |
virtual StringRef | getCPUSpecificTuneName (StringRef Name) const |
virtual void | getCPUSpecificCPUDispatchFeatures (StringRef Name, llvm::SmallVectorImpl< StringRef > &Features) const |
virtual std::optional< unsigned > | getCPUCacheLineSize () const |
unsigned | getRegParmMax () const |
bool | isTLSSupported () const |
Whether the target supports thread-local storage. | |
unsigned | getMaxTLSAlign () const |
Return the maximum alignment (in bits) of a TLS variable. | |
bool | isVLASupported () const |
Whether target supports variable-length arrays. | |
bool | isSEHTrySupported () const |
Whether the target supports SEH __try. | |
bool | hasNoAsmVariants () const |
Return true if {|} are normal characters in the asm string. | |
virtual int | getEHDataRegisterNumber (unsigned RegNo) const |
Return the register number that __builtin_eh_return_regno would return with the specified argument. | |
virtual const char * | getStaticInitSectionSpecifier () const |
Return the section to use for C++ static initialization functions. | |
const LangASMap & | getAddressSpaceMap () const |
unsigned | getTargetAddressSpace (LangAS AS) const |
virtual bool | validatePointerAuthKey (const llvm::APSInt &value) const |
Determine whether the given pointer-authentication key is valid. | |
virtual LangAS | getOpenCLBuiltinAddressSpace (unsigned AS) const |
Map from the address space field in builtin description strings to the language address space. | |
virtual LangAS | getCUDABuiltinAddressSpace (unsigned AS) const |
Map from the address space field in builtin description strings to the language address space. | |
virtual std::optional< LangAS > | getConstantAddressSpace () const |
Return an AST address space which can be used opportunistically for constant global memory. | |
virtual const llvm::omp::GV & | getGridValue () const |
StringRef | getPlatformName () const |
Retrieve the name of the platform as it is used in the availability attribute. | |
VersionTuple | getPlatformMinVersion () const |
Retrieve the minimum desired version of the platform, to which the program should be compiled. | |
bool | isBigEndian () const |
bool | isLittleEndian () const |
virtual bool | supportsExtendIntArgs () const |
Whether the option -fextend-arguments={32,64} is supported on the target. | |
virtual bool | checkArithmeticFenceSupported () const |
Controls if __arithmetic_fence is supported in the targeted backend. | |
virtual CallingConv | getDefaultCallingConv () const |
Gets the default calling convention for the given target and declaration context. | |
virtual CallingConvCheckResult | checkCallingConvention (CallingConv CC) const |
Determines whether a given calling convention is valid for the target. | |
virtual CallingConvKind | getCallingConvKind (bool ClangABICompat4) const |
virtual bool | areDefaultedSMFStillPOD (const LangOptions &) const |
Controls whether explicitly defaulted (= default ) special member functions disqualify something from being POD-for-the-purposes-of-layout. | |
virtual bool | hasSjLjLowering () const |
Controls if __builtin_longjmp / __builtin_setjmp can be lowered to llvm.eh.sjlj.longjmp / llvm.eh.sjlj.setjmp. | |
virtual bool | checkCFProtectionBranchSupported (DiagnosticsEngine &Diags) const |
Check if the target supports CFProtection branch. | |
virtual bool | checkCFProtectionReturnSupported (DiagnosticsEngine &Diags) const |
Check if the target supports CFProtection return. | |
virtual bool | allowsLargerPreferedTypeAlignment () const |
Whether target allows to overalign ABI-specified preferred alignment. | |
virtual bool | defaultsToAIXPowerAlignment () const |
Whether target defaults to the power alignment rules of AIX. | |
virtual void | setSupportedOpenCLOpts () |
Set supported OpenCL extensions and optional core features. | |
virtual void | supportAllOpenCLOpts (bool V=true) |
virtual void | setCommandLineOpenCLOpts () |
Set supported OpenCL extensions as written on command line. | |
llvm::StringMap< bool > & | getSupportedOpenCLOpts () |
Get supported OpenCL extensions and optional core features. | |
const llvm::StringMap< bool > & | getSupportedOpenCLOpts () const |
Get const supported OpenCL extensions and optional core features. | |
virtual LangAS | getOpenCLTypeAddrSpace (OpenCLTypeKind TK) const |
Get address space for OpenCL type. | |
virtual unsigned | getVtblPtrAddressSpace () const |
virtual std::optional< unsigned > | getDWARFAddressSpace (unsigned AddressSpace) const |
const llvm::VersionTuple & | getSDKVersion () const |
virtual bool | validateTarget (DiagnosticsEngine &Diags) const |
Check the target is valid after it is fully initialized. | |
virtual bool | validateOpenCLTarget (const LangOptions &Opts, DiagnosticsEngine &Diags) const |
Check that OpenCL target has valid options setting based on OpenCL version. | |
virtual void | setAuxTarget (const TargetInfo *Aux) |
virtual bool | allowDebugInfoForExternalRef () const |
Whether target allows debuginfo types for decl only variables/functions. | |
const llvm::Triple * | getDarwinTargetVariantTriple () const |
Returns the darwin target variant triple, the variant of the deployment target for which the code is being compiled. | |
const std::optional< VersionTuple > | getDarwinTargetVariantSDKVersion () const |
Returns the version of the darwin target variant SDK which was used during the compilation if one was specified, or an empty version otherwise. | |
virtual bool | hasHIPImageSupport () const |
Whether to support HIP image/texture API's. | |
virtual std::pair< unsigned, unsigned > | hardwareInterferenceSizes () const |
The first value in the pair is the minimum offset between two objects to avoid false sharing (destructive interference). | |
AArch64TargetInfo::AArch64TargetInfo | ( | const llvm::Triple & | Triple, |
const TargetOptions & | Opts | ||
) |
Definition at line 132 of file AArch64.cpp.
References clang::TransferrableTargetInfo::BFloat16Align, clang::TransferrableTargetInfo::BFloat16Format, clang::TransferrableTargetInfo::BFloat16Width, clang::TransferrableTargetInfo::BitIntMaxAlign, clang::TargetOptions::EABIVersion, clang::TargetInfo::getTriple(), clang::TargetInfo::HalfArgsAndReturns, clang::TargetInfo::HasAArch64SVETypes, clang::TargetInfo::HasBuiltinMSVaList, clang::TargetInfo::HasFloat16, clang::TargetInfo::HasLegalHalfType, clang::TargetInfo::HasStrictFP, clang::TargetInfo::HasUnalignedAccess, clang::TransferrableTargetInfo::Int64Type, clang::TransferrableTargetInfo::IntMaxType, clang::TransferrableTargetInfo::LongAlign, clang::TransferrableTargetInfo::LongDoubleAlign, clang::TransferrableTargetInfo::LongDoubleFormat, clang::TransferrableTargetInfo::LongDoubleWidth, clang::TransferrableTargetInfo::LongWidth, clang::TargetInfo::MaxAtomicInlineWidth, clang::TargetInfo::MaxAtomicPromoteWidth, clang::TransferrableTargetInfo::MaxVectorAlign, clang::TargetInfo::MCountName, clang::TargetInfo::NoAsmVariants, clang::TransferrableTargetInfo::PointerAlign, clang::TransferrableTargetInfo::PointerWidth, clang::TargetCXXABI::set(), clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SuitableAlign, clang::TargetInfo::TheCXXABI, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UseBitFieldTypeAlignment, clang::TransferrableTargetInfo::UseZeroLengthBitfieldAlignment, and clang::TransferrableTargetInfo::WCharType.
|
inlineoverridevirtual |
Controls if __arithmetic_fence is supported in the targeted backend.
Reimplemented from clang::TargetInfo.
|
overridevirtual |
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).
Reimplemented from clang::TargetInfo.
Definition at line 1211 of file AArch64.cpp.
References clang::CC_AArch64SVEPCS, clang::CC_AArch64VectorCall, clang::CC_C, clang::CC_OpenCLKernel, clang::CC_PreserveAll, clang::CC_PreserveMost, clang::CC_PreserveNone, clang::CC_Swift, clang::CC_SwiftAsync, clang::CC_Win64, clang::TargetInfo::CCCR_OK, and clang::TargetInfo::CCCR_Warning.
|
overridevirtual |
Reimplemented from clang::TargetInfo.
Definition at line 1354 of file AArch64.cpp.
References clang::TargetInfo::convertConstraint(), and matchAsmCCConstraint().
|
overridevirtual |
Returns true if feature has an impact on target code generation.
Reimplemented from clang::TargetInfo.
Definition at line 704 of file AArch64.cpp.
|
overridevirtual |
Fill a SmallVectorImpl with the valid values to setCPU.
Reimplemented from clang::TargetInfo.
Definition at line 275 of file AArch64.cpp.
|
overridevirtual |
Get the ABI currently in use.
Reimplemented from clang::TargetInfo.
Definition at line 204 of file AArch64.cpp.
|
inlineoverridevirtual |
Return the mangled code of bfloat.
Reimplemented from clang::TargetInfo.
|
overridevirtual |
Returns the kind of __builtin_va_list type that should be used with this target.
Implements clang::TargetInfo.
Definition at line 1231 of file AArch64.cpp.
References clang::TargetInfo::AArch64ABIBuiltinVaList.
|
overridevirtual |
Returns a string of target-specific clobbers, in LLVM format.
Implements clang::TargetInfo.
Definition at line 1473 of file AArch64.cpp.
|
inlineoverridevirtual |
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.
Reimplemented from clang::TargetInfo.
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.
Reimplemented from clang::TargetInfo.
Definition at line 1475 of file AArch64.cpp.
|
overridevirtual |
Implements clang::TargetInfo.
Definition at line 1325 of file AArch64.cpp.
|
overridevirtual |
Implements clang::TargetInfo.
Definition at line 1282 of file AArch64.cpp.
|
overridevirtual |
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.
Implements clang::TargetInfo.
Definition at line 673 of file AArch64.cpp.
References BuiltinInfo, clang::Builtin::FirstTSBuiltin, and clang::AArch64::LastTSBuiltin.
|
overridevirtual |
===-— Other target property query methods -----------------------—===//
Appends the target-specific #define values for this target set to the specified buffer.
Implements clang::TargetInfo.
Reimplemented in clang::targets::AArch64leTargetInfo, clang::targets::AArch64beTargetInfo, clang::targets::RenderScript64TargetInfo, and clang::targets::OSTargetInfo< AArch64leTargetInfo >.
Definition at line 376 of file AArch64.cpp.
References c, clang::TargetOptions::CodeModel, getTargetDefinesARMV81A(), getTargetDefinesARMV82A(), getTargetDefinesARMV83A(), getTargetDefinesARMV84A(), getTargetDefinesARMV85A(), getTargetDefinesARMV86A(), getTargetDefinesARMV87A(), getTargetDefinesARMV88A(), getTargetDefinesARMV89A(), getTargetDefinesARMV91A(), getTargetDefinesARMV92A(), getTargetDefinesARMV93A(), getTargetDefinesARMV94A(), getTargetDefinesARMV95A(), getTargetDefinesARMV9A(), clang::TargetInfo::getTargetOpts(), clang::TargetInfo::getTriple(), clang::LangOptions::hasSignReturnAddress(), clang::TargetInfo::HasUnalignedAccess, clang::LangOptions::isSignReturnAddressScopeAll(), and clang::LangOptions::isSignReturnAddressWithAKey().
Referenced by clang::targets::AArch64leTargetInfo::getTargetDefines(), and clang::targets::AArch64beTargetInfo::getTargetDefines().
void AArch64TargetInfo::getTargetDefinesARMV81A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 280 of file AArch64.cpp.
Referenced by getTargetDefines(), and getTargetDefinesARMV82A().
void AArch64TargetInfo::getTargetDefinesARMV82A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 285 of file AArch64.cpp.
References getTargetDefinesARMV81A().
Referenced by getTargetDefines(), and getTargetDefinesARMV83A().
void AArch64TargetInfo::getTargetDefinesARMV83A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 291 of file AArch64.cpp.
References getTargetDefinesARMV82A().
Referenced by getTargetDefines(), and getTargetDefinesARMV84A().
void AArch64TargetInfo::getTargetDefinesARMV84A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 299 of file AArch64.cpp.
References getTargetDefinesARMV83A().
Referenced by getTargetDefines(), and getTargetDefinesARMV85A().
void AArch64TargetInfo::getTargetDefinesARMV85A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 305 of file AArch64.cpp.
References getTargetDefinesARMV84A().
Referenced by getTargetDefines(), getTargetDefinesARMV86A(), and getTargetDefinesARMV9A().
void AArch64TargetInfo::getTargetDefinesARMV86A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 312 of file AArch64.cpp.
References getTargetDefinesARMV85A().
Referenced by getTargetDefines(), getTargetDefinesARMV87A(), and getTargetDefinesARMV91A().
void AArch64TargetInfo::getTargetDefinesARMV87A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 322 of file AArch64.cpp.
References getTargetDefinesARMV86A().
Referenced by getTargetDefines(), getTargetDefinesARMV88A(), and getTargetDefinesARMV92A().
void AArch64TargetInfo::getTargetDefinesARMV88A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 328 of file AArch64.cpp.
References getTargetDefinesARMV87A().
Referenced by getTargetDefines(), getTargetDefinesARMV89A(), and getTargetDefinesARMV93A().
void AArch64TargetInfo::getTargetDefinesARMV89A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 334 of file AArch64.cpp.
References getTargetDefinesARMV88A().
Referenced by getTargetDefines(), and getTargetDefinesARMV94A().
void AArch64TargetInfo::getTargetDefinesARMV91A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 346 of file AArch64.cpp.
References getTargetDefinesARMV86A().
Referenced by getTargetDefines().
void AArch64TargetInfo::getTargetDefinesARMV92A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 352 of file AArch64.cpp.
References getTargetDefinesARMV87A().
Referenced by getTargetDefines().
void AArch64TargetInfo::getTargetDefinesARMV93A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 358 of file AArch64.cpp.
References getTargetDefinesARMV88A().
Referenced by getTargetDefines().
void AArch64TargetInfo::getTargetDefinesARMV94A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 364 of file AArch64.cpp.
References getTargetDefinesARMV89A().
Referenced by getTargetDefines(), and getTargetDefinesARMV95A().
void AArch64TargetInfo::getTargetDefinesARMV95A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 370 of file AArch64.cpp.
References getTargetDefinesARMV94A().
Referenced by getTargetDefines().
void AArch64TargetInfo::getTargetDefinesARMV9A | ( | const LangOptions & | Opts, |
MacroBuilder & | Builder | ||
) | const |
Definition at line 340 of file AArch64.cpp.
References getTargetDefinesARMV85A().
Referenced by getTargetDefines().
|
overridevirtual |
Returns target-specific min and max values VScale_Range.
Reimplemented from clang::TargetInfo.
Definition at line 679 of file AArch64.cpp.
References hasFeature().
|
overridevirtual |
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.
Reimplemented from clang::TargetInfo.
Definition at line 806 of file AArch64.cpp.
References clang::TargetInfo::HasUnalignedAccess, and setArchFeatures().
|
overridevirtual |
Determine whether the _BFloat16 type is supported on this target.
Reimplemented from clang::TargetInfo.
Definition at line 1206 of file AArch64.cpp.
|
inlineoverridevirtual |
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.
Reimplemented from clang::TargetInfo.
|
overridevirtual |
Determine whether the given target has the given feature.
Reimplemented from clang::TargetInfo.
Definition at line 721 of file AArch64.cpp.
Referenced by getVScaleRange(), and validateTarget().
|
overridevirtual |
Determine whether the __int128 type is supported on this target.
Reimplemented from clang::TargetInfo.
Definition at line 1488 of file AArch64.cpp.
|
overridevirtual |
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.
Reimplemented from clang::TargetInfo.
Definition at line 1229 of file AArch64.cpp.
|
overridevirtual |
Determine whether this TargetInfo supports the given CPU name.
Reimplemented from clang::TargetInfo.
Definition at line 267 of file AArch64.cpp.
Referenced by setCPU().
|
overridevirtual |
Reimplemented from clang::TargetInfo.
Definition at line 698 of file AArch64.cpp.
|
overridevirtual |
Reimplemented from clang::TargetInfo.
Definition at line 690 of file AArch64.cpp.
|
overridevirtual |
Reimplemented from clang::TargetInfo.
Definition at line 1107 of file AArch64.cpp.
References clang::TargetOptions::FeaturesAsWritten, and clang::TargetInfo::getTargetOpts().
|
overridevirtual |
Use the specified ABI.
Reimplemented from clang::TargetInfo.
Definition at line 206 of file AArch64.cpp.
void AArch64TargetInfo::setArchFeatures | ( | ) |
Definition at line 59 of file AArch64.cpp.
Referenced by handleTargetFeatures().
|
overridevirtual |
Target the specified CPU.
Reimplemented from clang::TargetInfo.
Definition at line 271 of file AArch64.cpp.
References isValidCPUName().
|
overridevirtual |
Enable or disable a specific target feature; the feature name must be valid.
Reimplemented from clang::TargetInfo.
Definition at line 777 of file AArch64.cpp.
|
inlineoverridevirtual |
Reimplemented from clang::TargetInfo.
|
inlineoverridevirtual |
Determine whether this TargetInfo supports tune in target attribute.
Reimplemented from clang::TargetInfo.
|
inlineoverridevirtual |
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.
Reimplemented from clang::TargetInfo.
|
overridevirtual |
Implements clang::TargetInfo.
Definition at line 1375 of file AArch64.cpp.
References matchAsmCCConstraint(), clang::TargetInfo::ConstraintInfo::setAllowsMemory(), and clang::TargetInfo::ConstraintInfo::setAllowsRegister().
|
overridevirtual |
Determine if this TargetInfo supports the given branch protection specification.
Reimplemented from clang::TargetInfo.
Definition at line 243 of file AArch64.cpp.
References clang::LangOptionsBase::AKey, clang::LangOptionsBase::All, clang::LangOptionsBase::BKey, clang::TargetInfo::BranchProtectionInfo::BranchProtectionPAuthLR, clang::TargetInfo::BranchProtectionInfo::BranchTargetEnforcement, clang::TargetInfo::BranchProtectionInfo::GuardedControlStack, clang::LangOptionsBase::None, clang::LangOptionsBase::NonLeaf, clang::TargetInfo::BranchProtectionInfo::SignKey, and clang::TargetInfo::BranchProtectionInfo::SignReturnAddr.
|
overridevirtual |
Reimplemented from clang::TargetInfo.
Definition at line 1440 of file AArch64.cpp.
|
overridevirtual |
Reimplemented from clang::TargetInfo.
Definition at line 711 of file AArch64.cpp.
|
overridevirtual |
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.
Reimplemented from clang::TargetInfo.
Definition at line 231 of file AArch64.cpp.
|
overridevirtual |
Determine whether the given pointer-authentication key is valid.
The value has been coerced to type 'int'.
Reimplemented from clang::TargetInfo.
Definition at line 1483 of file AArch64.cpp.
|
overridevirtual |
Check the target is valid after it is fully initialized.
Reimplemented from clang::TargetInfo.
Definition at line 215 of file AArch64.cpp.
References clang::TargetInfo::getTriple(), hasFeature(), and clang::DiagnosticsEngine::Report().