clang 22.0.0git
clang::targets::MinGWARM64TargetInfo Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Basic/Targets/AArch64.h"

Inheritance diagram for clang::targets::MinGWARM64TargetInfo:
[legend]

Public Member Functions

 MinGWARM64TargetInfo (const llvm::Triple &Triple, const TargetOptions &Opts)
Public Member Functions inherited from clang::targets::WindowsARM64TargetInfo
 WindowsARM64TargetInfo (const llvm::Triple &Triple, const TargetOptions &Opts)
void setDataLayout () override
BuiltinVaListKind getBuiltinVaListKind () const override
 Returns the kind of __builtin_va_list type that should be used with this target.
CallingConvCheckResult checkCallingConvention (CallingConv CC) const override
 Determines whether a given calling convention is valid for the target.
Public Member Functions inherited from clang::targets::WindowsTargetInfo< AArch64leTargetInfo >
 WindowsTargetInfo (const llvm::Triple &Triple, const TargetOptions &Opts)
Public Member Functions inherited from clang::targets::OSTargetInfo< AArch64leTargetInfo >
 OSTargetInfo (const llvm::Triple &Triple, const TargetOptions &Opts)
void getTargetDefines (const LangOptions &Opts, MacroBuilder &Builder) const override
Public Member Functions inherited from clang::targets::AArch64leTargetInfo
 AArch64leTargetInfo (const llvm::Triple &Triple, const TargetOptions &Opts)
Public Member Functions inherited from clang::targets::AArch64TargetInfo
 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, const LangOptions &LO, 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.
llvm::APInt getFMVPriority (ArrayRef< StringRef > Features) 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 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 getTargetDefinesARMV96A (const LangOptions &Opts, MacroBuilder &Builder) const
llvm::SmallVector< Builtin::InfosShardgetTargetBuiltins () 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, ArmStreamingKind Mode, llvm::StringMap< bool > *FeatureMap=nullptr) 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.
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.
ArrayRef< const char * > getGCCRegNames () const override
ArrayRef< TargetInfo::GCCRegAliasgetGCCRegAliases () 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.
std::pair< unsigned, unsignedhardwareInterferenceSizes () const override
 The first value in the pair is the minimum offset between two objects to avoid false sharing (destructive interference).
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.
uint64_t getPointerWidthV (LangAS AddrSpace) const override
uint64_t getPointerAlignV (LangAS AddrSpace) const override
Public Member Functions inherited from clang::TargetInfo
virtual ~TargetInfo ()
TargetOptionsgetTargetOpts () 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.
virtual bool isAddressSpaceSupersetOf (LangAS A, LangAS B) const
 Returns true if an address space can be safely converted to another.
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
 getShortWidth/Align - Return the size of 'signed short' and 'unsigned short' for this target, in bits.
unsigned getShortAlign () const
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 size_t getMaxBitIntWidth () const
virtual bool hasFastHalfType () const
 Determine whether the target has fast native support for operations on half types.
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 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 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 getLargestOverSizedBitfieldContainer () const
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.
bool useAddressSpaceMapMangling () const
 Specify if mangling based on address space map should be used or not for language specific address spaces.
bool hasBuiltinMSVaList () const
 Returns whether or not type __builtin_ms_va_list type is available on this target.
bool hasAArch64ACLETypes () const
 Returns whether or not the AArch64 ACLE 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.
uint32_t getARMCDECoprocMask () const
 For ARM targets returns a mask defining which coprocessors are configured as Custom Datapath.
virtual unsigned getARMLDREXMask () const
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
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
bool resolveSymbolicName (const char *&Name, ArrayRef< ConstraintInfo > OutputConstraints, unsigned &Index) const
virtual std::optional< std::string > handleAsmEscapedChar (char C) const
 Replace some escaped characters with another string based on target-specific rules.
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, const TargetInfo *Aux)
 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.
TargetCXXABI getCXXABI () const
 Get the C++ ABI currently in use.
bool shouldUseMicrosoftCCforMangling () const
 Should the Microsoft mangling scheme be used for C Calling Convention.
virtual void fillValidTuneCPUList (SmallVectorImpl< StringRef > &Values) const
 Fill a SmallVectorImpl with the valid values for tuning CPU.
virtual bool isValidTuneCPUName (StringRef Name) const
 Determine whether this TargetInfo supports the given CPU name for tuning.
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 bool isValidFeatureName (StringRef Feature) const
 Determine whether this TargetInfo supports the given feature.
virtual bool isBranchProtectionSupportedArch (StringRef Arch) const
 Determine if the Architecture in this TargetInfo supports branch protection.
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 supportsCpuIs () const
virtual bool supportsCpuInit () 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< unsignedgetCPUCacheLineSize () 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 const char * getStaticInitSectionSpecifier () const
 Return the section to use for C++ static initialization functions.
const LangASMapgetAddressSpaceMap () const
unsigned getTargetAddressSpace (LangAS AS) const
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< LangASgetConstantAddressSpace () 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 CallingConv getDefaultCallingConv () const
 Gets the default calling convention for the given target.
AtomicOptions getAtomicOpts () const
 Get the default atomic options.
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 CFBranchLabelSchemeKind getDefaultCFBranchLabelScheme () const
 Get the target default CFBranchLabelScheme scheme.
virtual bool checkCFBranchLabelSchemeSupported (const CFBranchLabelSchemeKind Scheme, DiagnosticsEngine &Diags) const
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< unsignedgetDWARFAddressSpace (unsigned AddressSpace) const
const llvm::VersionTuple & getSDKVersion () const
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)
bool hasMicrosoftRecordLayout () const
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.
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.

Additional Inherited Members

Public Types inherited from clang::TargetInfo
enum  BuiltinVaListKind {
  CharPtrBuiltinVaList = 0 , VoidPtrBuiltinVaList , AArch64ABIBuiltinVaList , PowerABIBuiltinVaList ,
  X86_64ABIBuiltinVaList , AAPCSABIBuiltinVaList , SystemZBuiltinVaList , HexagonBuiltinVaList ,
  XtensaABIBuiltinVaList
}
 The different kinds of __builtin_va_list types defined by the target implementation. More...
enum class  ArmStreamingKind { NotStreaming , StreamingCompatible , Streaming }
enum  { ARM_LDREX_B = (1 << 0) , ARM_LDREX_H = (1 << 1) , ARM_LDREX_W = (1 << 2) , ARM_LDREX_D = (1 << 3) }
 For ARM targets returns a mask defining which data sizes are suitable for __builtin_arm_ldrex and __builtin_arm_strex. More...
enum  CallingConvCheckResult { CCCR_OK , CCCR_Warning , CCCR_Ignore , CCCR_Error }
enum  CallingConvKind { CCK_Default , CCK_ClangABI4OrPS4 , CCK_MicrosoftWin64 }
Public Types inherited from clang::TransferrableTargetInfo
enum  IntType {
  NoInt = 0 , SignedChar , UnsignedChar , SignedShort ,
  UnsignedShort , SignedInt , UnsignedInt , SignedLong ,
  UnsignedLong , SignedLongLong , UnsignedLongLong
}
 ===-— Target Data Type Query Methods ----------------------------—===// More...
Static Public Member Functions inherited from clang::TargetInfo
static TargetInfoCreateTargetInfo (DiagnosticsEngine &Diags, TargetOptions &Opts)
 Construct a target for the given options.
static IntType getCorrespondingUnsignedType (IntType T)
static bool isTypeSigned (IntType T)
 Returns true if the type is signed; false otherwise.
static const char * getTypeName (IntType T)
 Return the user string for the specified integer type enum.
static const char * getTypeFormatModifier (IntType T)
 Return the printf format modifier for the specified integer type enum.
Public Attributes inherited from clang::TransferrableTargetInfo
unsigned char PointerWidth
unsigned char PointerAlign
unsigned char BoolWidth
unsigned char BoolAlign
unsigned char ShortWidth
unsigned char ShortAlign
unsigned char IntWidth
unsigned char IntAlign
unsigned char HalfWidth
unsigned char HalfAlign
unsigned char BFloat16Width
unsigned char BFloat16Align
unsigned char FloatWidth
unsigned char FloatAlign
unsigned char DoubleWidth
unsigned char DoubleAlign
unsigned char LongDoubleWidth
unsigned char LongDoubleAlign
unsigned char Float128Align
unsigned char Ibm128Align
unsigned char LargeArrayMinWidth
unsigned char LargeArrayAlign
unsigned char LongWidth
unsigned char LongAlign
unsigned char LongLongWidth
unsigned char LongLongAlign
unsigned char Int128Align
std::optional< unsignedBitIntMaxAlign
unsigned char ShortAccumWidth
unsigned char ShortAccumAlign
unsigned char AccumWidth
unsigned char AccumAlign
unsigned char LongAccumWidth
unsigned char LongAccumAlign
unsigned char ShortFractWidth
unsigned char ShortFractAlign
unsigned char FractWidth
unsigned char FractAlign
unsigned char LongFractWidth
unsigned char LongFractAlign
bool PaddingOnUnsignedFixedPoint
unsigned char ShortAccumScale
unsigned char AccumScale
unsigned char LongAccumScale
unsigned char DefaultAlignForAttributeAligned
unsigned char MinGlobalAlign
unsigned short SuitableAlign
unsigned short NewAlign
unsigned MaxVectorAlign
unsigned MaxTLSAlign
const llvm::fltSemantics * HalfFormat
const llvm::fltSemantics * BFloat16Format
const llvm::fltSemantics * FloatFormat
const llvm::fltSemantics * DoubleFormat
const llvm::fltSemantics * LongDoubleFormat
const llvm::fltSemantics * Float128Format
const llvm::fltSemantics * Ibm128Format
Protected Member Functions inherited from clang::targets::WindowsTargetInfo< AArch64leTargetInfo >
void getOSDefines (const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
Protected Member Functions inherited from clang::TargetInfo
 TargetInfo (const llvm::Triple &T)
void resetDataLayout (StringRef DL, const char *UserLabelPrefix="")
void copyAuxTarget (const TargetInfo *Aux)
 Copy type and layout related info.
virtual enum IntType getPtrDiffTypeV (LangAS AddrSpace) const
virtual ArrayRef< AddlRegNamegetGCCAddlRegNames () const
Protected Attributes inherited from clang::TargetInfo
bool BigEndian
bool TLSSupported
bool VLASupported
bool NoAsmVariants
bool HasFastHalfType
bool HalfArgsAndReturns
bool HasFloat128
bool HasFloat16
bool HasBFloat16
bool HasFullBFloat16
bool HasIbm128
bool HasLongDouble
bool HasFPReturn
bool HasStrictFP
unsigned char MaxAtomicPromoteWidth
unsigned char MaxAtomicInlineWidth
std::string DataLayoutString
const char * UserLabelPrefix
const char * MCountName
unsigned char RegParmMax
unsigned char SSERegParmMax
TargetCXXABI TheCXXABI
bool UseMicrosoftManglingForC = false
const LangASMapAddrSpaceMap
StringRef PlatformName
VersionTuple PlatformMinVersion
unsigned HasAlignMac68kSupport: 1
unsigned RealTypeUsesObjCFPRetMask: llvm::BitWidth<FloatModeKind>
unsigned ComplexLongDoubleUsesFP2Ret: 1
unsigned HasBuiltinMSVaList: 1
unsigned HasAArch64ACLETypes: 1
unsigned HasRISCVVTypes: 1
unsigned AllowAMDGPUUnsafeFPAtomics: 1
unsigned HasUnalignedAccess: 1
unsigned ARMCDECoprocMask: 8
unsigned MaxOpenCLWorkGroupSize
std::optional< unsignedMaxBitIntWidth
std::optional< llvm::Triple > DarwinTargetVariantTriple
bool HasMicrosoftRecordLayout = false
llvm::StringSet ReadOnlyFeatures
AtomicOptions AtomicOpts
bool UseAddrSpaceMapMangling
 Specify if mangling based on address space map should be used or not for language specific address spaces.
Protected Attributes inherited from clang::TransferrableTargetInfo
IntType SizeType
IntType IntMaxType
IntType PtrDiffType
IntType IntPtrType
IntType WCharType
IntType WIntType
IntType Char16Type
IntType Char32Type
IntType Int64Type
IntType Int16Type
IntType SigAtomicType
IntType ProcessIDType
unsigned UseSignedCharForObjCBool: 1
 Whether Objective-C's built-in boolean type should be signed char.
unsigned UseBitFieldTypeAlignment: 1
 Control whether the alignment of bit-field types is respected when laying out structures.
unsigned UseZeroLengthBitfieldAlignment: 1
 Whether zero length bitfields (e.g., int : 0;) force alignment of the next bitfield.
unsigned UseLeadingZeroLengthBitfield: 1
 Whether zero length bitfield alignment is respected if they are the leading members.
unsigned UseExplicitBitFieldAlignment: 1
 Whether explicit bit field alignment attributes are honored.
unsigned ZeroLengthBitfieldBoundary
 If non-zero, specifies a fixed alignment value for bitfields that follow zero length bitfield, regardless of the zero length bitfield type.
unsigned LargestOverSizedBitfieldContainer
 The largest container size which should be used for an over-sized bitfield, in bits.
unsigned MaxAlignedAttribute
 If non-zero, specifies a maximum alignment to truncate alignment specified in the aligned attribute of a static variable to this value.

Detailed Description

Definition at line 312 of file AArch64.h.

Constructor & Destructor Documentation

◆ MinGWARM64TargetInfo()

MinGWARM64TargetInfo::MinGWARM64TargetInfo ( const llvm::Triple & Triple,
const TargetOptions & Opts )

The documentation for this class was generated from the following files: