|
clang 22.0.0git
|
Exposes information about the current target. More...
#include "clang/Basic/TargetInfo.h"
Classes | |
| struct | AddlRegName |
| class | BranchProtectionInfo |
| struct | ConstraintInfo |
| struct | GCCRegAlias |
Public Member Functions | |
| 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. | |
| 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 bool | hasMustTail () const |
| 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 | 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 | 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 | 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. | |
| 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 llvm::SmallVector< Builtin::InfosShard > | 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, ArmStreamingKind Mode, llvm::StringMap< bool > *FeatureMap=nullptr) 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 | 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 |
| 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 |
| std::string | simplifyConstraint (StringRef Constraint, SmallVectorImpl< ConstraintInfo > *OutCons=nullptr) 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, 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. | |
| virtual StringRef | getABI () const |
| Get the ABI currently in use. | |
| 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 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, const LangOptions &LO, 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 llvm::APInt | getFMVPriority (ArrayRef< StringRef > Features) 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. | |
| AtomicOptions | getAtomicOpts () const |
| Get the default atomic options. | |
| 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 | callGlobalDeleteInDeletingDtor (const LangOptions &) const |
| Controls whether global operator delete is called by the deleting destructor or at the point where ::delete was called. | |
| virtual bool | emitVectorDeletingDtors (const LangOptions &) const |
| Controls whether to emit MSVC vector deleting destructors. | |
| 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. | |
| virtual void | setDependentOpenCLOpts () |
| Set features that depend on other features. | |
| 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) |
| 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. | |
| 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). | |
Static Public Member Functions | |
| static TargetInfo * | CreateTargetInfo (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. | |
Protected Member Functions | |
| TargetInfo (const llvm::Triple &T) | |
| void | resetDataLayout (StringRef DL) |
| Set the data layout to the given string. | |
| void | resetDataLayout () |
| Set the data layout based on current triple and ABI. | |
| void | copyAuxTarget (const TargetInfo *Aux) |
| Copy type and layout related info. | |
| virtual uint64_t | getPointerWidthV (LangAS AddrSpace) const |
| virtual uint64_t | getPointerAlignV (LangAS AddrSpace) const |
| virtual enum IntType | getPtrDiffTypeV (LangAS AddrSpace) const |
| virtual ArrayRef< const char * > | getGCCRegNames () const =0 |
| virtual ArrayRef< GCCRegAlias > | getGCCRegAliases () const =0 |
| virtual ArrayRef< AddlRegName > | getGCCAddlRegNames () const |
Exposes information about the current target.
Definition at line 225 of file TargetInfo.h.
| anonymous enum |
For ARM targets returns a mask defining which data sizes are suitable for __builtin_arm_ldrex and __builtin_arm_strex.
| Enumerator | |
|---|---|
| ARM_LDREX_B | |
| ARM_LDREX_H | byte (8-bit) |
| ARM_LDREX_W | half (16-bit) |
| ARM_LDREX_D | word (32-bit) |
Definition at line 1083 of file TargetInfo.h.
|
strong |
| Enumerator | |
|---|---|
| NotStreaming | |
| StreamingCompatible | |
| Streaming | |
Definition at line 1042 of file TargetInfo.h.
The different kinds of __builtin_va_list types defined by the target implementation.
| Enumerator | |
|---|---|
| CharPtrBuiltinVaList | typedef char* __builtin_va_list; |
| VoidPtrBuiltinVaList | typedef void* __builtin_va_list; |
| AArch64ABIBuiltinVaList | __builtin_va_list as defined by the AArch64 ABI http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf |
| PowerABIBuiltinVaList | __builtin_va_list as defined by the Power ABI: https://www.power.org /resources/downloads/Power-Arch-32-bit-ABI-supp-1.0-Embedded.pdf |
| X86_64ABIBuiltinVaList | __builtin_va_list as defined by the x86-64 ABI: http://refspecs.linuxbase.org/elf/x86_64-abi-0.21.pdf |
| AAPCSABIBuiltinVaList | __builtin_va_list as defined by ARM AAPCS ABI http://infocenter.arm.com |
| SystemZBuiltinVaList | |
| HexagonBuiltinVaList | |
| XtensaABIBuiltinVaList | |
Definition at line 333 of file TargetInfo.h.
| Enumerator | |
|---|---|
| CCCR_OK | |
| CCCR_Warning | |
| CCCR_Ignore | |
| CCCR_Error | |
Definition at line 1757 of file TargetInfo.h.
| Enumerator | |
|---|---|
| CCK_Default | |
| CCK_ClangABI4OrPS4 | |
| CCK_MicrosoftWin64 | |
Definition at line 1777 of file TargetInfo.h.
|
protected |
Definition at line 59 of file TargetInfo.cpp.
References clang::TransferrableTargetInfo::AccumAlign, clang::TransferrableTargetInfo::AccumScale, clang::TransferrableTargetInfo::AccumWidth, AddrSpaceMap, AllowAMDGPUUnsafeFPAtomics, ARMCDECoprocMask, BigEndian, clang::TransferrableTargetInfo::BoolAlign, clang::TransferrableTargetInfo::BoolWidth, clang::TransferrableTargetInfo::Char16Type, clang::TransferrableTargetInfo::Char32Type, ComplexLongDoubleUsesFP2Ret, DefaultAddrSpaceMap, clang::TransferrableTargetInfo::DefaultAlignForAttributeAligned, clang::TransferrableTargetInfo::DoubleAlign, clang::TransferrableTargetInfo::DoubleFormat, clang::TransferrableTargetInfo::DoubleWidth, clang::TransferrableTargetInfo::Float128Align, clang::TransferrableTargetInfo::Float128Format, clang::TransferrableTargetInfo::FloatAlign, clang::TransferrableTargetInfo::FloatFormat, clang::TransferrableTargetInfo::FloatWidth, clang::TransferrableTargetInfo::FractAlign, clang::TransferrableTargetInfo::FractWidth, clang::TransferrableTargetInfo::HalfAlign, HalfArgsAndReturns, clang::TransferrableTargetInfo::HalfFormat, clang::TransferrableTargetInfo::HalfWidth, HasAArch64ACLETypes, HasAlignMac68kSupport, HasBFloat16, HasBuiltinMSVaList, HasFastHalfType, HasFloat128, HasFloat16, HasFPReturn, HasFullBFloat16, HasIbm128, HasLongDouble, HasMicrosoftRecordLayout, HasMustTail, HasRISCVVTypes, HasStrictFP, HasUnalignedAccess, clang::TransferrableTargetInfo::Ibm128Align, clang::TransferrableTargetInfo::Ibm128Format, clang::if(), clang::TransferrableTargetInfo::Int128Align, clang::TransferrableTargetInfo::Int16Type, clang::TransferrableTargetInfo::Int64Type, clang::TransferrableTargetInfo::IntAlign, clang::TransferrableTargetInfo::IntMaxType, clang::TransferrableTargetInfo::IntPtrType, clang::TransferrableTargetInfo::IntWidth, clang::TransferrableTargetInfo::LargeArrayAlign, clang::TransferrableTargetInfo::LargeArrayMinWidth, clang::TransferrableTargetInfo::LargestOverSizedBitfieldContainer, clang::TransferrableTargetInfo::LongAccumAlign, clang::TransferrableTargetInfo::LongAccumScale, clang::TransferrableTargetInfo::LongAccumWidth, clang::TransferrableTargetInfo::LongAlign, clang::TransferrableTargetInfo::LongDoubleAlign, clang::TransferrableTargetInfo::LongDoubleFormat, clang::TransferrableTargetInfo::LongDoubleWidth, clang::TransferrableTargetInfo::LongFractAlign, clang::TransferrableTargetInfo::LongFractWidth, clang::TransferrableTargetInfo::LongLongAlign, clang::TransferrableTargetInfo::LongLongWidth, clang::TransferrableTargetInfo::LongWidth, clang::TransferrableTargetInfo::MaxAlignedAttribute, MaxAtomicInlineWidth, MaxAtomicPromoteWidth, MaxBitIntWidth, MaxOpenCLWorkGroupSize, clang::TransferrableTargetInfo::MaxTLSAlign, clang::TransferrableTargetInfo::MaxVectorAlign, MCountName, clang::TransferrableTargetInfo::MinGlobalAlign, clang::TransferrableTargetInfo::NewAlign, NoAsmVariants, clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint, PlatformMinVersion, PlatformName, clang::TransferrableTargetInfo::PointerAlign, clang::TransferrableTargetInfo::PointerWidth, clang::TransferrableTargetInfo::ProcessIDType, clang::TransferrableTargetInfo::PtrDiffType, RealTypeUsesObjCFPRetMask, RegParmMax, clang::TransferrableTargetInfo::ShortAccumAlign, clang::TransferrableTargetInfo::ShortAccumScale, clang::TransferrableTargetInfo::ShortAccumWidth, clang::TransferrableTargetInfo::ShortAlign, clang::TransferrableTargetInfo::ShortFractAlign, clang::TransferrableTargetInfo::ShortFractWidth, clang::TransferrableTargetInfo::ShortWidth, clang::TransferrableTargetInfo::SigAtomicType, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::TransferrableTargetInfo::SizeType, SSERegParmMax, clang::TransferrableTargetInfo::SuitableAlign, clang::T, TheCXXABI, TLSSupported, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedShort, UseAddrSpaceMapMangling, clang::TransferrableTargetInfo::UseBitFieldTypeAlignment, clang::TransferrableTargetInfo::UseExplicitBitFieldAlignment, clang::TransferrableTargetInfo::UseLeadingZeroLengthBitfield, UserLabelPrefix, clang::TransferrableTargetInfo::UseSignedCharForObjCBool, clang::TransferrableTargetInfo::UseZeroLengthBitfieldAlignment, VLASupported, clang::TransferrableTargetInfo::WCharType, clang::TransferrableTargetInfo::WIntType, and clang::TransferrableTargetInfo::ZeroLengthBitfieldBoundary.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), adjust(), clang::targets::AMDGPUTargetInfo::adjust(), clang::targets::BaseSPIRTargetInfo::adjust(), clang::targets::DirectXTargetInfo::adjust(), clang::targets::PPCTargetInfo::adjust(), clang::targets::SPIRV64AMDGCNTargetInfo::adjust(), clang::targets::SPIRV64TargetInfo::adjust(), clang::targets::X86_64TargetInfo::adjust(), clang::targets::X86TargetInfo::adjust(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::ARCTargetInfo::ARCTargetInfo(), clang::targets::ARMTargetInfo::ARMTargetInfo(), clang::targets::AVRTargetInfo::AVRTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::BPFTargetInfo::BPFTargetInfo(), copyAuxTarget(), CreateTargetInfo(), clang::targets::CSKYTargetInfo::CSKYTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::HexagonTargetInfo::HexagonTargetInfo(), clang::targets::LanaiTargetInfo::LanaiTargetInfo(), clang::targets::LoongArchTargetInfo::LoongArchTargetInfo(), clang::targets::M68kTargetInfo::M68kTargetInfo(), clang::targets::MipsTargetInfo::MipsTargetInfo(), clang::targets::MSP430TargetInfo::MSP430TargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), clang::targets::PPCTargetInfo::PPCTargetInfo(), clang::targets::RISCVTargetInfo::RISCVTargetInfo(), setAuxTarget(), clang::targets::AMDGPUTargetInfo::setAuxTarget(), clang::targets::SPIRV64AMDGCNTargetInfo::setAuxTarget(), clang::targets::SparcTargetInfo::SparcTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), clang::targets::TCETargetInfo::TCETargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo(), clang::targets::X86TargetInfo::X86TargetInfo(), clang::targets::XCoreTargetInfo::XCoreTargetInfo(), and clang::targets::XtensaTargetInfo::XtensaTargetInfo().
|
virtual |
Definition at line 197 of file TargetInfo.cpp.
|
virtual |
Set forced language options.
adjust - Set forced language options.
Apply changes to the target information with respect to certain language options which change the target configuration and adjust the language based on the target options where applicable.
Reimplemented in clang::targets::AMDGPUTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SPIRV64TargetInfo, clang::targets::X86_64TargetInfo, and clang::targets::X86TargetInfo.
Definition at line 418 of file TargetInfo.cpp.
References AddrSpaceMap, clang::TransferrableTargetInfo::BoolAlign, clang::TransferrableTargetInfo::BoolWidth, checkArithmeticFenceSupported(), clang::TransferrableTargetInfo::DoubleAlign, clang::TransferrableTargetInfo::DoubleFormat, clang::TransferrableTargetInfo::DoubleWidth, FakeAddrSpaceMap, clang::TransferrableTargetInfo::FloatAlign, clang::TransferrableTargetInfo::FloatFormat, clang::TransferrableTargetInfo::FloatWidth, getCharWidth(), getCXXABI(), getMaxPointerWidth(), clang::LangOptions::getOpenCLCompatibleVersion(), getSupportedOpenCLOpts(), getTriple(), clang::TransferrableTargetInfo::HalfAlign, clang::TransferrableTargetInfo::HalfFormat, clang::TransferrableTargetInfo::HalfWidth, hasFeatureEnabled(), HasMicrosoftRecordLayout, clang::TransferrableTargetInfo::Int64Type, clang::TransferrableTargetInfo::IntAlign, clang::TransferrableTargetInfo::IntMaxType, clang::TransferrableTargetInfo::IntPtrType, clang::TransferrableTargetInfo::IntWidth, clang::TargetCXXABI::isMicrosoft(), clang::TransferrableTargetInfo::LongAlign, clang::TransferrableTargetInfo::LongDoubleAlign, clang::TransferrableTargetInfo::LongDoubleFormat, clang::TransferrableTargetInfo::LongDoubleWidth, clang::TransferrableTargetInfo::LongLongAlign, clang::TransferrableTargetInfo::LongLongWidth, clang::TransferrableTargetInfo::LongWidth, MaxBitIntWidth, clang::TransferrableTargetInfo::NewAlign, clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint, clang::TransferrableTargetInfo::PtrDiffType, clang::DiagnosticsEngine::Report(), clang::TransferrableTargetInfo::ShortAlign, clang::TransferrableTargetInfo::ShortWidth, clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::TransferrableTargetInfo::SizeType, TargetInfo(), clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedShort, clang::TransferrableTargetInfo::UseBitFieldTypeAlignment, and clang::TransferrableTargetInfo::WCharType.
Referenced by clang::targets::AMDGPUTargetInfo::adjust(), clang::targets::BaseSPIRTargetInfo::adjust(), clang::targets::DirectXTargetInfo::adjust(), clang::targets::PPCTargetInfo::adjust(), clang::targets::SPIRV64AMDGCNTargetInfo::adjust(), clang::targets::SPIRV64TargetInfo::adjust(), clang::targets::X86_64TargetInfo::adjust(), clang::targets::X86TargetInfo::adjust(), clang::CompilerInstance::createPreprocessor(), and clang::CompilerInstance::createTarget().
|
inlinevirtual |
Whether target allows debuginfo types for decl only variables/functions.
Reimplemented in clang::targets::BPFTargetInfo.
Definition at line 1911 of file TargetInfo.h.
|
inlinevirtual |
Whether half args and returns are supported.
Definition at line 714 of file TargetInfo.h.
References HalfArgsAndReturns.
Referenced by GetFullTypeForDeclarator().
|
inlinevirtual |
Whether target allows to overalign ABI-specified preferred alignment.
Reimplemented in clang::targets::AVRTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::MCUX86_32TargetInfo, clang::targets::MSP430TargetInfo, clang::targets::VETargetInfo, and clang::targets::XCoreTargetInfo.
Definition at line 1828 of file TargetInfo.h.
|
virtual |
Controls whether explicitly defaulted (= default) special member functions disqualify something from being POD-for-the-purposes-of-layout.
Historically, Clang didn't consider these acceptable for POD, but GCC does. So in newer Clang ABIs they are acceptable for POD to be compatible with GCC/Itanium ABI, and remains disqualifying for targets that need Clang backwards compatibility rather than GCC/Itanium ABI compatibility.
Reimplemented in clang::targets::AIXTargetInfo< PPC32TargetInfo >, clang::targets::AIXTargetInfo< PPC64TargetInfo >, clang::targets::DarwinTargetInfo< AArch64leTargetInfo >, clang::targets::DarwinTargetInfo< ARMleTargetInfo >, clang::targets::DarwinTargetInfo< X86_32TargetInfo >, and clang::targets::DarwinTargetInfo< X86_64TargetInfo >.
Definition at line 647 of file TargetInfo.cpp.
|
virtual |
Controls whether global operator delete is called by the deleting destructor or at the point where ::delete was called.
Historically Clang called global operator delete outside of the deleting destructor for both Microsoft and Itanium ABI. In Clang 21 support for ::delete was aligned with Microsoft ABI, so it will call global operator delete in the deleting destructor body.
Definition at line 632 of file TargetInfo.cpp.
References getCXXABI().
|
inlinevirtual |
Controls if __arithmetic_fence is supported in the targeted backend.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::SPIRTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1740 of file TargetInfo.h.
Referenced by adjust(), and clang::CodeGen::CodeGenFunction::EmitBuiltinExpr().
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CygwinX86_64TargetInfo, clang::targets::M68kTargetInfo, clang::targets::MCUX86_32TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPC64TargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::UEFIX86_64TargetInfo, clang::targets::VETargetInfo, clang::targets::WindowsARM64TargetInfo, clang::targets::WindowsARMTargetInfo, clang::targets::WindowsMipsTargetInfo, clang::targets::WindowsX86_64TargetInfo, clang::targets::X86_64TargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1768 of file TargetInfo.h.
References clang::CC_C, CCCR_OK, and CCCR_Warning.
Referenced by clang::Sema::CheckCallingConvAttr(), clang::targets::M68kTargetInfo::checkCallingConvention(), and repeatForLambdaConversionFunctionCallingConvs().
|
virtual |
Reimplemented in clang::targets::RISCVTargetInfo.
Definition at line 217 of file TargetInfo.cpp.
References clang::Default, clang::getCFBranchLabelSchemeFlagVal(), and clang::DiagnosticsEngine::Report().
Referenced by clang::targets::RISCVTargetInfo::checkCFBranchLabelSchemeSupported().
|
virtual |
Check if the target supports CFProtection branch.
Reimplemented in clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 206 of file TargetInfo.cpp.
References clang::DiagnosticsEngine::Report().
Referenced by clang::targets::X86TargetInfo::checkCFProtectionBranchSupported().
|
virtual |
Check if the target supports CFProtection return.
Reimplemented in clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 228 of file TargetInfo.cpp.
References clang::DiagnosticsEngine::Report().
Referenced by clang::targets::RISCVTargetInfo::checkCFProtectionReturnSupported(), and clang::targets::X86TargetInfo::checkCFProtectionReturnSupported().
|
inlinevirtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1293 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::convertConstraint(), clang::targets::LoongArchTargetInfo::convertConstraint(), clang::targets::MipsTargetInfo::convertConstraint(), clang::targets::PPCTargetInfo::convertConstraint(), clang::targets::RISCVTargetInfo::convertConstraint(), clang::targets::SystemZTargetInfo::convertConstraint(), and simplifyConstraint().
|
protected |
Copy type and layout related info.
Definition at line 1061 of file TargetInfo.cpp.
References clang::Target, and TargetInfo().
Referenced by clang::targets::AMDGPUTargetInfo::setAuxTarget(), and clang::targets::SPIRV64AMDGCNTargetInfo::setAuxTarget().
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1610 of file TargetInfo.h.
|
static |
Construct a target for the given options.
CreateTargetInfo - Return the target info object for the specified target options.
| Opts | - The options to use to initialize the target. The target may modify the options to canonicalize the target feature information to match what the backend expects. These must outlive the returned TargetInfo. |
Definition at line 792 of file Targets.cpp.
References clang::TargetOptions::ABI, clang::targets::AllocateTarget(), clang::TargetOptions::CPU, clang::TargetOptions::FeaturesAsWritten, clang::TargetOptions::FPMath, clang::DiagnosticsEngine::Report(), clang::Target, TargetInfo(), clang::TargetOptions::Triple, and clang::TargetOptions::TuneCPU.
Referenced by clang::createChainedIncludesSource(), clang::CompilerInstance::createTarget(), and clang::ASTUnit::LoadFromASTFile().
|
inlinevirtual |
Whether target defaults to the power alignment rules of AIX.
Reimplemented in clang::targets::AIXTargetInfo< PPC32TargetInfo >, and clang::targets::AIXTargetInfo< PPC64TargetInfo >.
Definition at line 1831 of file TargetInfo.h.
|
inlinevirtual |
Returns true if feature has an impact on target code generation.
Reimplemented in clang::targets::AArch64TargetInfo.
Definition at line 1465 of file TargetInfo.h.
References Feature.
|
inline |
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.
Return true if unsigned fixed point types have padding for this target.
Definition at line 454 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by DefineFixedPointMacros().
|
virtual |
Controls whether to emit MSVC vector deleting destructors.
The support for vector deleting affects vtable layout and therefore is an ABI breaking change. The support was only implemented at Clang 22 timeframe.
Definition at line 640 of file TargetInfo.cpp.
References getCXXABI().
|
inlinevirtual |
Fill a SmallVectorImpl with the valid values to setCPU.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SparcV9TargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1405 of file TargetInfo.h.
Referenced by fillValidTuneCPUList().
|
inlinevirtual |
Fill a SmallVectorImpl with the valid values for tuning CPU.
Reimplemented in clang::targets::RISCVTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1408 of file TargetInfo.h.
References fillValidCPUList().
|
inlinevirtual |
Get the ABI currently in use.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::WebAssemblyTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1385 of file TargetInfo.h.
Referenced by clang::SemaWasm::BuiltinWasmTestFunctionPointerSignature(), isAAPCS(), isAAPCS(), and resetDataLayout().
|
inline |
Definition at line 570 of file TargetInfo.h.
References clang::TransferrableTargetInfo::AccumAlign.
|
inline |
Definition at line 602 of file TargetInfo.h.
References clang::TransferrableTargetInfo::AccumScale, and clang::TransferrableTargetInfo::AccumWidth.
Referenced by getUnsignedAccumIBits(), and InitializePredefinedMacros().
|
inline |
getAccumScale/IBits - Return the number of fractional/integral bits in a 'signed _Accum' type.
Definition at line 601 of file TargetInfo.h.
References clang::TransferrableTargetInfo::AccumScale.
Referenced by InitializePredefinedMacros().
|
inline |
getAccumWidth/Align - Return the size of 'signed _Accum' and 'unsigned _Accum' for this target, in bits.
Definition at line 569 of file TargetInfo.h.
References clang::TransferrableTargetInfo::AccumWidth.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 1687 of file TargetInfo.h.
References AddrSpaceMap.
Referenced by getTargetAddressSpace().
|
inline |
For ARM targets returns a mask defining which coprocessors are configured as Custom Datapath.
Definition at line 1079 of file TargetInfo.h.
References ARMCDECoprocMask.
Referenced by clang::SemaARM::CheckARMCoprocessorImmediate(), and clang::targets::ARMTargetInfo::getTargetDefines().
|
inlinevirtual |
Reimplemented in clang::targets::ARMTargetInfo.
Definition at line 1090 of file TargetInfo.h.
Referenced by clang::SemaARM::CheckARMBuiltinExclusiveCall().
|
inline |
Get the default atomic options.
Definition at line 1755 of file TargetInfo.h.
References AtomicOpts.
|
inline |
Definition at line 797 of file TargetInfo.h.
References clang::TransferrableTargetInfo::BFloat16Align.
|
inline |
Definition at line 798 of file TargetInfo.h.
References clang::TransferrableTargetInfo::BFloat16Format.
Referenced by higherPrecisionElementTypeForComplexArithmetic().
|
inlinevirtual |
Return the mangled code of bfloat.
Reimplemented in clang::targets::AArch64TargetInfo, and clang::targets::ARMTargetInfo.
Definition at line 839 of file TargetInfo.h.
|
inline |
getBFloat16Width/Align/Format - Return the size/align/format of '__bf16'.
Definition at line 796 of file TargetInfo.h.
References clang::TransferrableTargetInfo::BFloat16Width.
Definition at line 557 of file TargetInfo.h.
References getBitIntMaxAlign(), and getCharWidth().
Referenced by getBitIntWidth().
|
inline |
getBitIntMaxAlign() - Returns the maximum possible alignment of '_BitInt' and 'unsigned _BitInt'.
Definition at line 548 of file TargetInfo.h.
References clang::TransferrableTargetInfo::BitIntMaxAlign, and clang::TransferrableTargetInfo::LongLongAlign.
Referenced by getBitIntAlign().
getBitIntAlign/Width - Return aligned size of '_BitInt' and 'unsigned _BitInt' for this target, in bits.
Definition at line 554 of file TargetInfo.h.
References getBitIntAlign().
|
inline |
Return the alignment of '_Bool' and C++ 'bool' for this target.
Definition at line 518 of file TargetInfo.h.
References clang::TransferrableTargetInfo::BoolAlign.
|
inline |
Return the size of '_Bool' and C++ 'bool' for this target, in bits.
Definition at line 515 of file TargetInfo.h.
References clang::TransferrableTargetInfo::BoolWidth.
|
pure virtual |
Returns the kind of __builtin_va_list type that should be used with this target.
Implemented in clang::targets::AArch64TargetInfo, clang::targets::AIXPPC32TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::CygwinX86_64TargetInfo, clang::targets::DarwinAArch64TargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPC32TargetInfo, clang::targets::PPC64TargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, clang::targets::UEFIX86_64TargetInfo, clang::targets::VETargetInfo, clang::targets::WindowsARM64TargetInfo, clang::targets::WindowsARMTargetInfo, clang::targets::WindowsMipsTargetInfo, clang::targets::WindowsX86_64TargetInfo, clang::targets::X86_32TargetInfo, clang::targets::X86_64TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
|
virtual |
Reimplemented in clang::targets::MicrosoftARM64TargetInfo, clang::targets::MicrosoftX86_64TargetInfo, and clang::targets::UEFIX86_64TargetInfo.
Definition at line 625 of file TargetInfo.cpp.
References CCK_ClangABI4OrPS4, CCK_Default, getCXXABI(), and getTriple().
|
inline |
Definition at line 778 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Char16Type, and getTypeAlign().
|
inline |
Definition at line 420 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Char16Type.
Referenced by InitializePredefinedMacros().
|
inline |
getChar16Width/Align - Return the size of 'char16_t' for this target, in bits.
Definition at line 777 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Char16Type, and getTypeWidth().
Referenced by EvaluateValue().
|
inline |
Definition at line 783 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Char32Type, and getTypeAlign().
|
inline |
Definition at line 421 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Char32Type.
Referenced by InitializePredefinedMacros().
|
inline |
getChar32Width/Align - Return the size of 'char32_t' for this target, in bits.
Definition at line 782 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Char32Type, and getTypeWidth().
Referenced by EvaluateValue().
|
inline |
Definition at line 521 of file TargetInfo.h.
Referenced by clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), and getTypeAlign().
|
inline |
Definition at line 520 of file TargetInfo.h.
Referenced by adjust(), clang::CharLiteralParser::CharLiteralParser(), DefineTypeSizeof(), clang::CIRGen::CIRGenFunction::emitCoroIDBuiltinCall(), EvaluateValue(), getIntTypeByWidth(), getLeastIntTypeByWidth(), getTypeConstantSuffix(), getTypeWidth(), InitializePredefinedMacros(), InitializeStandardPredefinedMacros(), and parseModeAttrArg().
|
pure virtual |
Returns a string of target-specific clobbers, in LLVM format.
Implemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, clang::targets::VETargetInfo, clang::targets::X86TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
Referenced by collectClobbers(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), emitPPCLoadReserveIntrinsic(), and EmitX86BitTestIntrinsic().
|
inlinevirtual |
Return an AST address space which can be used opportunistically for constant global memory.
It must be possible to convert pointers into this address space to LangAS::Default. If no such address space exists, this may return std::nullopt, and such optimizations will be disabled.
Reimplemented in clang::targets::AMDGPUTargetInfo, and clang::targets::SPIRV64TargetInfo.
Definition at line 1715 of file TargetInfo.h.
References clang::Default.
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::ARMTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1120 of file TargetInfo.h.
Definition at line 433 of file TargetInfo.h.
References clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by getUInt16Type(), getUInt64Type(), getUIntMaxType(), getUIntPtrType(), and getUnsignedPtrDiffType().
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1633 of file TargetInfo.h.
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1625 of file TargetInfo.h.
|
inlinevirtual |
Definition at line 1617 of file TargetInfo.h.
Map from the address space field in builtin description strings to the language address space.
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 1707 of file TargetInfo.h.
References clang::getLangASFromTargetAS().
Referenced by clang::ASTContext::getLangASForBuiltinAddressSpace().
|
inline |
Get the C++ ABI currently in use.
Definition at line 1388 of file TargetInfo.h.
References TheCXXABI.
Referenced by adjust(), BuildAppleKextVirtualCall(), callGlobalDeleteInDeletingDtor(), canEmitDelegateCallArgs(), checkForMultipleExportedDefaultConstructors(), checkInheritableAttr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), emitVectorDeletingDtors(), clang::ASTNameGenerator::Implementation::getAllManglings(), getCallingConvKind(), getCallingConvMangling(), clang::ASTContext::getCXXABIKind(), clang::CodeGen::CodeGenModule::getVTableLinkage(), handleHlslSplitdouble(), hasInAllocaArgs(), InitDeviceMC(), clang::installapi::isInlined(), clang::ASTContext::isMSStaticDataMemberInlineDefinition(), isStdBuiltin(), isVarDeclStrongDefinition(), clang::FieldDecl::isZeroSize(), clang::MangleContext::mangleName(), MarkBaseDestructorsReferenced(), ReferenceDllExportedMembers(), shouldEmitVTableThunk(), and UseRelativeLayout().
|
inline |
Returns the version of the darwin target variant SDK which was used during the compilation if one was specified, or an empty version otherwise.
Definition at line 1921 of file TargetInfo.h.
References getTargetOpts().
|
inline |
Returns the darwin target variant triple, the variant of the deployment target for which the code is being compiled.
Definition at line 1915 of file TargetInfo.h.
References DarwinTargetVariantTriple.
Referenced by isTargetVariantEnvironment(), and isTargetVariantOS().
|
inline |
Definition at line 1325 of file TargetInfo.h.
References DataLayoutString.
Referenced by clang::CodeGenAction::ExecuteAction().
|
inline |
Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified.
Definition at line 751 of file TargetInfo.h.
References clang::TransferrableTargetInfo::DefaultAlignForAttributeAligned.
Referenced by getExnObjectAlignment(), and clang::ASTContext::getTargetDefaultAlignForAttributeAligned().
|
inlinevirtual |
Gets the default calling convention for the given target.
This function does not take into account any user options to override the default calling convention. For that, see ASTContext::getDefaultCallingConvention().
Reimplemented in clang::targets::BaseSPIRTargetInfo, clang::targets::X86_64TargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1747 of file TargetInfo.h.
References clang::CC_C.
|
virtual |
Get the target default CFBranchLabelScheme scheme.
Reimplemented in clang::targets::RISCVTargetInfo.
Definition at line 211 of file TargetInfo.cpp.
|
inline |
Definition at line 802 of file TargetInfo.h.
References clang::TransferrableTargetInfo::DoubleAlign.
|
inline |
Definition at line 803 of file TargetInfo.h.
References clang::TransferrableTargetInfo::DoubleFormat.
Referenced by higherPrecisionElementTypeForComplexArithmetic(), and InitializePredefinedMacros().
|
inline |
getDoubleWidth/Align/Format - Return the size/align/format of 'double'.
Definition at line 801 of file TargetInfo.h.
References clang::TransferrableTargetInfo::DoubleWidth.
Referenced by getRealTypeByWidth(), and InitializePredefinedMacros().
|
inlinevirtual |
AddressSpace to be converted in order to be used, then return the corresponding target specific DWARF address space.Reimplemented in clang::targets::AMDGPUTargetInfo, clang::targets::BaseSPIRTargetInfo, and clang::targets::NVPTXTargetInfo.
Definition at line 1885 of file TargetInfo.h.
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 in clang::targets::AArch64TargetInfo, clang::targets::ARMTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::X86_32TargetInfo, clang::targets::X86_64TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
Definition at line 1678 of file TargetInfo.h.
Referenced by clang::interp::interp__builtin_eh_return_data_regno().
|
inlinevirtual |
Return the alignment (in bits) of the thrown exception object.
This is only meaningful for targets that allocate C++ exceptions in a system runtime, such as those using the Itanium C++ ABI.
Reimplemented in clang::targets::DarwinTargetInfo< AArch64leTargetInfo >, clang::targets::DarwinTargetInfo< ARMleTargetInfo >, clang::targets::DarwinTargetInfo< X86_32TargetInfo >, and clang::targets::DarwinTargetInfo< X86_64TargetInfo >.
Definition at line 880 of file TargetInfo.h.
References getDefaultAlignForAttributeAligned().
|
inline |
Definition at line 816 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Float128Align.
|
inline |
Definition at line 817 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Float128Format.
Referenced by higherPrecisionElementTypeForComplexArithmetic().
|
inlinevirtual |
Return the mangled code of __float128.
Reimplemented in clang::targets::PPCTargetInfo.
Definition at line 831 of file TargetInfo.h.
|
inline |
getFloat128Width/Align/Format - Return the size/align/format of '__float128'.
Definition at line 815 of file TargetInfo.h.
|
inline |
Definition at line 792 of file TargetInfo.h.
References clang::TransferrableTargetInfo::FloatAlign.
|
inline |
Definition at line 793 of file TargetInfo.h.
References clang::TransferrableTargetInfo::FloatFormat.
Referenced by higherPrecisionElementTypeForComplexArithmetic(), and InitializePredefinedMacros().
|
inline |
getFloatWidth/Align/Format - Return the size/align/format of 'float'.
Definition at line 791 of file TargetInfo.h.
References clang::TransferrableTargetInfo::FloatWidth.
Referenced by getRealTypeByWidth(), and InitializePredefinedMacros().
|
inlinevirtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1595 of file TargetInfo.h.
Referenced by clang::CodeGen::ABIInfo::appendAttributeMangling(), CheckMultiVersionValue(), and getFMVPriority().
|
inlinevirtual |
Return the value for the C99 FLT_EVAL_METHOD macro.
Reimplemented in clang::targets::AIXTargetInfo< PPC32TargetInfo >, clang::targets::AIXTargetInfo< PPC64TargetInfo >, and clang::targets::X86TargetInfo.
Definition at line 842 of file TargetInfo.h.
References clang::LangOptionsBase::FEM_Source.
|
inline |
Definition at line 585 of file TargetInfo.h.
References clang::TransferrableTargetInfo::FractAlign.
|
inline |
getFractScale - Return the number of fractional bits in a 'signed _Fract' type.
Definition at line 649 of file TargetInfo.h.
References clang::TransferrableTargetInfo::FractWidth.
Referenced by getUnsignedFractScale(), and InitializePredefinedMacros().
|
inline |
getFractWidth/Align - Return the size of 'signed _Fract' and 'unsigned _Fract' for this target, in bits.
Definition at line 584 of file TargetInfo.h.
References clang::TransferrableTargetInfo::FractWidth.
Referenced by InitializePredefinedMacros().
|
inlineprotectedvirtual |
Reimplemented in clang::targets::AVRTargetInfo, clang::targets::PPCTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1953 of file TargetInfo.h.
Referenced by getNormalizedGCCRegisterName(), and isValidGCCRegisterName().
|
protectedpure virtual |
Implemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, clang::targets::VETargetInfo, clang::targets::X86TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
Referenced by getNormalizedGCCRegisterName(), and isValidGCCRegisterName().
|
protectedpure virtual |
Implemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, clang::targets::VETargetInfo, clang::targets::X86TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
Referenced by getNormalizedGCCRegisterName(), and isValidGCCRegisterName().
|
inlinevirtual |
Reimplemented in clang::targets::AMDGPUTargetInfo, clang::targets::NVPTXTargetInfo, and clang::targets::SPIRV64TargetInfo.
Definition at line 1721 of file TargetInfo.h.
Referenced by clang::CodeGen::CGOpenMPRuntimeGPU::emitReduction().
|
inline |
Definition at line 787 of file TargetInfo.h.
References clang::TransferrableTargetInfo::HalfAlign.
|
inline |
Definition at line 788 of file TargetInfo.h.
References clang::TransferrableTargetInfo::HalfFormat.
Referenced by higherPrecisionElementTypeForComplexArithmetic(), and InitializePredefinedMacros().
|
inline |
getHalfWidth/Align/Format - Return the size/align/format of 'half'.
Definition at line 786 of file TargetInfo.h.
References clang::TransferrableTargetInfo::HalfWidth.
Referenced by getRealTypeByWidth().
|
inline |
Definition at line 824 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Ibm128Align.
|
inline |
Definition at line 825 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Ibm128Format.
|
inlinevirtual |
Return the mangled code of __ibm128.
Reimplemented in clang::targets::PPCTargetInfo.
Definition at line 834 of file TargetInfo.h.
|
inline |
getIbm128Width/Align/Format - Return the size/align/format of '__ibm128'.
Definition at line 823 of file TargetInfo.h.
|
inline |
getInt128Align() - Returns the alignment of Int128.
Definition at line 544 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Int128Align.
|
inline |
Definition at line 426 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Int16Type.
Referenced by DefineExactWidthIntType().
|
inline |
Definition at line 422 of file TargetInfo.h.
References clang::TransferrableTargetInfo::Int64Type.
Referenced by clang::SemaARM::CheckNeonBuiltinFunctionCall(), DefineExactWidthIntType(), and DefineExactWidthIntTypeSize().
|
inline |
Definition at line 531 of file TargetInfo.h.
References clang::TransferrableTargetInfo::IntAlign.
Referenced by getTypeAlign().
|
inline |
Return the size of intmax_t and uintmax_t for this target, in bits.
Definition at line 893 of file TargetInfo.h.
References getTypeWidth(), and clang::TransferrableTargetInfo::IntMaxType.
|
inline |
Definition at line 403 of file TargetInfo.h.
References clang::TransferrableTargetInfo::IntMaxType.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 414 of file TargetInfo.h.
References clang::TransferrableTargetInfo::IntPtrType.
Referenced by clang::SemaPPC::CheckPPCBuiltinFunctionCall(), and InitializePredefinedMacros().
|
virtual |
Return integer type with specified width.
Reimplemented in clang::targets::AVRTargetInfo.
Definition at line 312 of file TargetInfo.cpp.
References getCharWidth(), getIntWidth(), getLongLongWidth(), getLongWidth(), getShortWidth(), clang::TransferrableTargetInfo::NoInt, clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by clang::targets::AVRTargetInfo::getIntTypeByWidth(), and clang::ASTContext::getIntTypeForBitwidth().
|
inline |
getIntWidth/Align - Return the size of 'signed int' and 'unsigned int' for this target, in bits.
Definition at line 530 of file TargetInfo.h.
References clang::TransferrableTargetInfo::IntWidth.
Referenced by clang::CharLiteralParser::CharLiteralParser(), EvaluateValue(), getIntTypeByWidth(), getLeastIntTypeByWidth(), clang::targets::MipsTargetInfo::getTargetDefines(), getTypeConstantSuffix(), getTypeWidth(), and InitializePredefinedMacros().
|
inline |
Definition at line 851 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LargeArrayAlign.
|
inline |
Definition at line 850 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LargeArrayMinWidth.
|
inline |
Definition at line 969 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LargestOverSizedBitfieldContainer.
|
virtual |
Return the smallest integer type with at least the specified width.
Reimplemented in clang::targets::AVRTargetInfo, clang::targets::DarwinTargetInfo< AArch64leTargetInfo >, clang::targets::DarwinTargetInfo< ARMleTargetInfo >, clang::targets::DarwinTargetInfo< X86_32TargetInfo >, and clang::targets::DarwinTargetInfo< X86_64TargetInfo >.
Definition at line 327 of file TargetInfo.cpp.
References getCharWidth(), getIntWidth(), getLongLongWidth(), getLongWidth(), getShortWidth(), clang::TransferrableTargetInfo::NoInt, clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by DefineFastIntType(), DefineLeastWidthIntType(), clang::targets::AVRTargetInfo::getLeastIntTypeByWidth(), and clang::targets::DarwinTargetInfo< Target >::getLeastIntTypeByWidth().
|
inline |
Definition at line 575 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongAccumAlign.
|
inline |
Definition at line 607 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongAccumScale, and clang::TransferrableTargetInfo::LongAccumWidth.
Referenced by getUnsignedLongAccumIBits(), and InitializePredefinedMacros().
|
inline |
getLongAccumScale/IBits - Return the number of fractional/integral bits in a 'signed long _Accum' type.
Definition at line 606 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongAccumScale.
Referenced by InitializePredefinedMacros().
|
inline |
getLongAccumWidth/Align - Return the size of 'signed long _Accum' and 'unsigned long _Accum' for this target, in bits.
Definition at line 574 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongAccumWidth.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 536 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongAlign.
Referenced by getTypeAlign().
|
inline |
Definition at line 808 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongDoubleAlign.
|
inline |
Definition at line 809 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongDoubleFormat.
Referenced by clang::ento::SMTConstraintManager::canReasonAbout(), clang::SemaPPC::CheckPPCBuiltinFunctionCall(), getRealTypeByWidth(), higherPrecisionElementTypeForComplexArithmetic(), and InitializePredefinedMacros().
|
inlinevirtual |
Return the mangled code of long double.
Reimplemented in clang::targets::PPCTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 828 of file TargetInfo.h.
|
inline |
getLongDoubleWidth/Align/Format - Return the size/align/format of 'long double'.
Definition at line 807 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongDoubleWidth.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 590 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongFractAlign.
|
inline |
getLongFractScale - Return the number of fractional bits in a 'signed long _Fract' type.
Definition at line 653 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongFractWidth.
Referenced by getUnsignedLongFractScale(), and InitializePredefinedMacros().
|
inline |
getLongFractWidth/Align - Return the size of 'signed long _Fract' and 'unsigned long _Fract' for this target, in bits.
Definition at line 589 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongFractWidth.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 541 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongLongAlign.
Referenced by getTypeAlign().
|
inline |
getLongLongWidth/Align - Return the size of 'signed long long' and 'unsigned long long' for this target, in bits.
Definition at line 540 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongLongWidth.
Referenced by getIntTypeByWidth(), getLeastIntTypeByWidth(), getTypeWidth(), and InitializePredefinedMacros().
|
inline |
getLongWidth/Align - Return the size of 'signed long' and 'unsigned long' for this target, in bits.
Definition at line 535 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongWidth.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString(), getIntTypeByWidth(), getLeastIntTypeByWidth(), clang::targets::MipsTargetInfo::getTargetDefines(), getTypeWidth(), and InitializePredefinedMacros().
|
inline |
Get the maximum alignment in bits for a static variable with aligned attribute.
Definition at line 975 of file TargetInfo.h.
References clang::TransferrableTargetInfo::MaxAlignedAttribute.
Referenced by clang::ASTContext::getDeclAlign().
|
inline |
Return the maximum width lock-free atomic operation which can be inlined given the supported features of the given target.
Definition at line 858 of file TargetInfo.h.
References MaxAtomicInlineWidth.
Referenced by clang::ASTContext::AtomicUsesUnsupportedLibcall(), hasBuiltinAtomic(), clang::interp::interp__builtin_atomic_lock_free(), and clang::interp::interp__builtin_c11_atomic_is_lock_free().
|
inline |
Return the maximum width lock-free atomic operation which will ever be supported for the given target.
Definition at line 855 of file TargetInfo.h.
References MaxAtomicPromoteWidth.
|
inlinevirtual |
Reimplemented in clang::targets::X86_32TargetInfo, and clang::targets::X86_64TargetInfo.
Definition at line 695 of file TargetInfo.h.
References MaxBitIntWidth.
Referenced by clang::Sema::BuildBitIntType(), and InitializePredefinedMacros().
|
inline |
Definition at line 875 of file TargetInfo.h.
References MaxOpenCLWorkGroupSize.
|
inlinevirtual |
Return the maximum width of pointers on this target.
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 499 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PointerWidth.
Referenced by adjust(), and clang::CodeGen::initializationPatternFor().
|
inline |
Return the maximum alignment (in bits) of a TLS variable.
Gets the maximum alignment (in bits) of a TLS variable on this target. Returns zero if there is no such constraint.
Definition at line 1652 of file TargetInfo.h.
References clang::TransferrableTargetInfo::MaxTLSAlign.
|
inline |
Return the maximum vector alignment supported for the given target.
Definition at line 873 of file TargetInfo.h.
References clang::TransferrableTargetInfo::MaxVectorAlign.
|
inline |
Returns the name of the mcount instrumentation function.
Definition at line 929 of file TargetInfo.h.
References MCountName.
|
inlinevirtual |
getMinGlobalAlign - Return the minimum alignment of a global variable, unless its alignment is explicitly reduced via attributes.
If
| HasNonWeakDef | is true, this concerns a VarDecl which has a definition in current translation unit and that is not weak. |
Reimplemented in clang::targets::CSKYTargetInfo, clang::targets::MicrosoftARM64TargetInfo, and clang::targets::SystemZTargetInfo.
Definition at line 759 of file TargetInfo.h.
References clang::TransferrableTargetInfo::MinGlobalAlign.
Referenced by clang::targets::MicrosoftARM64TargetInfo::getMinGlobalAlign(), and clang::ASTContext::getMinGlobalAlignOfVar().
|
inline |
Return the largest alignment for which a suitably-sized allocation with '::operator new(size_t)' is guaranteed to produce a correctly-aligned pointer.
Definition at line 766 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongDoubleAlign, clang::TransferrableTargetInfo::LongLongAlign, and clang::TransferrableTargetInfo::NewAlign.
Referenced by clang::CIRGen::CIRGenFunction::emitCoroIDBuiltinCall(), clang::CIRGen::CIRGenFunction::emitCXXNewExpr(), hasNewExtendedAlignment(), and InitializeStandardPredefinedMacros().
| StringRef TargetInfo::getNormalizedGCCRegisterName | ( | StringRef | Name, |
| bool | ReturnCanonical = false ) const |
Returns the "normalized" GCC register name.
ReturnCannonical true will return the register name without any additions such as "{}" or "%" in it's canonical form, for example: ReturnCanonical = true and Name = "rax", will return "ax".
Definition at line 742 of file TargetInfo.cpp.
References getGCCAddlRegNames(), getGCCRegAliases(), getGCCRegNames(), clang::isDigit(), isValidGCCRegisterName(), and removeGCCRegisterPrefix().
Referenced by collectClobbers(), and clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inlinevirtual |
Get integer value for null pointer.
| AddrSpace | address space of pointee in source language. |
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 505 of file TargetInfo.h.
Referenced by clang::ASTContext::getTargetNullPointerValue().
Map from the address space field in builtin description strings to the language address space.
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 1701 of file TargetInfo.h.
References clang::getLangASFromTargetAS().
Referenced by clang::ASTContext::getLangASForBuiltinAddressSpace().
|
virtual |
Get address space for OpenCL type.
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 662 of file TargetInfo.cpp.
References clang::Default, clang::OCLTK_Image, clang::OCLTK_Pipe, clang::OCLTK_Sampler, clang::opencl_constant, and clang::opencl_global.
Referenced by clang::targets::AMDGPUTargetInfo::getOpenCLTypeAddrSpace().
|
inline |
Retrieve the minimum desired version of the platform, to which the program should be compiled.
Definition at line 1731 of file TargetInfo.h.
References PlatformMinVersion.
Referenced by checkObjCMethodX86VectorTypes(), and DoEmitAvailabilityWarning().
|
inline |
Retrieve the name of the platform as it is used in the availability attribute.
Definition at line 1727 of file TargetInfo.h.
References PlatformName.
Referenced by clang::AvailabilityInfo::createFromDecl(), DiagnoseObjCImplementedDeprecations(), and DoEmitAvailabilityWarning().
|
inline |
Definition at line 493 of file TargetInfo.h.
References clang::Default, getPointerAlignV(), and clang::TransferrableTargetInfo::PointerAlign.
Referenced by clang::CodeGen::CodeGenModule::getVtableGlobalVarAlignment(), and initializeForBlockHeader().
|
inlineprotectedvirtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1945 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PointerAlign.
Referenced by getPointerAlign().
|
inline |
Return the width of pointers on this target, for the specified address space.
Definition at line 489 of file TargetInfo.h.
References clang::Default, getPointerWidthV(), and clang::TransferrableTargetInfo::PointerWidth.
Referenced by clang::interp::CheckPointerToIntegralCast(), clang::CodeGen::swiftcall::getMaximumVoluntaryIntegerSize(), GetNumNonZeroBytesInInit(), clang::targets::MipsTargetInfo::getTargetDefines(), getUnwindWordWidth(), clang::targets::MipsTargetInfo::getUnwindWordWidth(), handleMSPointerTypeQualifierAttr(), hasInt128Type(), initializeForBlockHeader(), InitializePredefinedMacros(), clang::MangleContext::mangleName(), and parseModeAttrArg().
|
inlineprotectedvirtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1942 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PointerWidth.
Referenced by getPointerWidth().
|
inline |
Definition at line 431 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ProcessIDType.
Definition at line 407 of file TargetInfo.h.
References clang::Default, getPtrDiffTypeV(), and clang::TransferrableTargetInfo::PtrDiffType.
Referenced by buildDynamicCastToVoidAfterNullCheck(), clang::ASTContext::getPredefinedSugarType(), cir::getPtrDiffCIRTy(), getUnsignedPtrDiffType(), and InitializePredefinedMacros().
|
inlineprotectedvirtual |
Definition at line 1948 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PtrDiffType.
Referenced by getPtrDiffType().
| FloatModeKind TargetInfo::getRealTypeByWidth | ( | unsigned | BitWidth, |
| FloatModeKind | ExplicitType ) const |
Return floating point type with specified width.
On PPC, there are three possible types for 128-bit floating point: "PPC double-double", IEEE 754R quad precision, and "long double" (which under the covers is represented as one of those two). At this time, there is no support for an explicit "PPC double-double" type (i.e. __ibm128) so we only need to differentiate between "long double" and IEEE quad precision.
Definition at line 342 of file TargetInfo.cpp.
References clang::Double, clang::Float, clang::Float128, getDoubleWidth(), getFloatWidth(), getHalfWidth(), getLongDoubleFormat(), clang::Half, hasFloat128Type(), hasIbm128Type(), clang::Ibm128, clang::LongDouble, and clang::NoFloat.
Referenced by clang::ASTContext::getRealTypeForBitwidth().
|
inlinevirtual |
Return the "preferred" register width on this target.
Reimplemented in clang::targets::X86_64TargetInfo.
Definition at line 903 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PointerWidth.
Referenced by clang::targets::LoongArchTargetInfo::getTargetDefines(), and parseModeAttrArg().
|
inline |
Definition at line 1638 of file TargetInfo.h.
References RegParmMax.
|
inline |
Definition at line 1892 of file TargetInfo.h.
References getTargetOpts().
Referenced by handleAliasAttr().
|
inline |
Definition at line 565 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortAccumAlign.
|
inline |
Definition at line 595 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortAccumScale, and clang::TransferrableTargetInfo::ShortAccumWidth.
Referenced by getUnsignedShortAccumIBits(), and InitializePredefinedMacros().
|
inline |
getShortAccumScale/IBits - Return the number of fractional/integral bits in a 'signed short _Accum' type.
Definition at line 594 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortAccumScale.
Referenced by InitializePredefinedMacros().
|
inline |
getShortAccumWidth/Align - Return the size of 'signed short _Accum' and 'unsigned short _Accum' for this target, in bits.
Definition at line 564 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortAccumWidth.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 526 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortAlign.
Referenced by getTypeAlign().
|
inline |
Definition at line 580 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortFractAlign.
|
inline |
getShortFractScale - Return the number of fractional bits in a 'signed short _Fract' type.
Definition at line 645 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortFractWidth.
Referenced by getUnsignedShortFractScale(), and InitializePredefinedMacros().
|
inline |
getShortFractWidth/Align - Return the size of 'signed short _Fract' and 'unsigned short _Fract' for this target, in bits.
Definition at line 579 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortFractWidth.
Referenced by InitializePredefinedMacros().
|
inline |
getShortWidth/Align - Return the size of 'signed short' and 'unsigned short' for this target, in bits.
Definition at line 525 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ShortWidth.
Referenced by getIntTypeByWidth(), getLeastIntTypeByWidth(), getTypeConstantSuffix(), getTypeWidth(), and InitializePredefinedMacros().
|
inline |
Definition at line 430 of file TargetInfo.h.
References clang::TransferrableTargetInfo::SigAtomicType.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 389 of file TargetInfo.h.
References clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::TransferrableTargetInfo::SizeType, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by clang::ASTContext::getPredefinedSugarType().
|
inline |
Definition at line 388 of file TargetInfo.h.
References clang::TransferrableTargetInfo::SizeType.
Referenced by clang::ASTContext::getPredefinedSugarType(), InitializePredefinedMacros(), and InitializeStandardPredefinedMacros().
|
inlinevirtual |
Return the section to use for C++ static initialization functions.
Reimplemented in clang::targets::AppleMachOTargetInfo< AArch64leTargetInfo >, clang::targets::AppleMachOTargetInfo< ARMleTargetInfo >, clang::targets::AppleMachOTargetInfo< X86_32TargetInfo >, clang::targets::AppleMachOTargetInfo< X86_64TargetInfo >, clang::targets::DarwinTargetInfo< AArch64leTargetInfo >, clang::targets::DarwinTargetInfo< ARMleTargetInfo >, clang::targets::DarwinTargetInfo< X86_32TargetInfo >, clang::targets::DarwinTargetInfo< X86_64TargetInfo >, clang::targets::LinuxTargetInfo< X86_32TargetInfo >, clang::targets::LinuxTargetInfo< X86_64TargetInfo >, clang::targets::OHOSTargetInfo< X86_32TargetInfo >, and clang::targets::OHOSTargetInfo< X86_64TargetInfo >.
Definition at line 1683 of file TargetInfo.h.
|
inline |
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).
Definition at line 747 of file TargetInfo.h.
References clang::TransferrableTargetInfo::SuitableAlign.
Referenced by emitBuiltinAlloca(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), and InitializePredefinedMacros().
|
inline |
Get supported OpenCL extensions and optional core features.
Definition at line 1862 of file TargetInfo.h.
References getTargetOpts().
Referenced by adjust(), clang::OpenCLOptions::diagnoseFeatureExtensionDifferences(), clang::OpenCLOptions::diagnoseUnsupportedFeatureDependencies(), InitializeOpenCLFeatureTestMacros(), setDependentOpenCLOpts(), clang::targets::AMDGPUTargetInfo::setSupportedOpenCLOpts(), clang::targets::NVPTXTargetInfo::setSupportedOpenCLOpts(), and validateOpenCLTarget().
|
inline |
Get const supported OpenCL extensions and optional core features.
Definition at line 1867 of file TargetInfo.h.
References getTargetOpts().
Definition at line 1688 of file TargetInfo.h.
References getAddressSpaceMap(), clang::isTargetAddressSpace(), and clang::toTargetAddressSpace().
Referenced by clang::targets::AMDGPUTargetInfo::getPointerWidthV(), clang::targets::SystemZTargetInfo::getPointerWidthV(), clang::targets::X86TargetInfo::getPointerWidthV(), and clang::ASTContext::getTargetAddressSpace().
|
pure virtual |
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.
Implemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BaseSPIRVTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, clang::targets::VETargetInfo, clang::targets::X86_32TargetInfo, clang::targets::X86_64TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
Referenced by clang::Builtin::Context::InitializeTarget().
|
pure virtual |
===-— Other target property query methods -----------------------—===//
Appends the target-specific #define values for this target set to the specified buffer.
Implemented in clang::targets::AArch64beTargetInfo, clang::targets::AArch64leTargetInfo, clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMbeTargetInfo, clang::targets::ARMleTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRVTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::CygwinARMTargetInfo, clang::targets::CygwinX86_32TargetInfo, clang::targets::CygwinX86_64TargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HaikuX86_32TargetInfo, clang::targets::HexagonTargetInfo, clang::targets::ItaniumWindowsARMleTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MCUX86_32TargetInfo, clang::targets::MicrosoftARM64TargetInfo, clang::targets::MicrosoftARMleTargetInfo, clang::targets::MicrosoftMipsTargetInfo, clang::targets::MicrosoftX86_32TargetInfo, clang::targets::MicrosoftX86_64TargetInfo, clang::targets::MinGWARMTargetInfo, clang::targets::MinGWMipsTargetInfo, clang::targets::MinGWX86_32TargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::OSTargetInfo< AArch64leTargetInfo >, clang::targets::OSTargetInfo< ARMleTargetInfo >, clang::targets::OSTargetInfo< MipsTargetInfo >, clang::targets::OSTargetInfo< PPC32TargetInfo >, clang::targets::OSTargetInfo< PPC64TargetInfo >, clang::targets::OSTargetInfo< X86_32TargetInfo >, clang::targets::OSTargetInfo< X86_64TargetInfo >, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::RTEMSX86_32TargetInfo, clang::targets::SparcTargetInfo, clang::targets::SparcV8TargetInfo, clang::targets::SparcV9TargetInfo, clang::targets::SPIR32TargetInfo, clang::targets::SPIR64TargetInfo, clang::targets::SPIRTargetInfo, clang::targets::SPIRV32TargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SPIRV64TargetInfo, clang::targets::SPIRVTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCELETargetInfo, clang::targets::TCETargetInfo, clang::targets::VETargetInfo, clang::targets::WebAssembly32TargetInfo, clang::targets::WebAssembly64TargetInfo, clang::targets::WebAssemblyTargetInfo, clang::targets::X86TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
Referenced by clang::targets::CygwinX86_32TargetInfo::getTargetDefines(), clang::targets::CygwinX86_64TargetInfo::getTargetDefines(), clang::targets::ItaniumWindowsARMleTargetInfo::getTargetDefines(), clang::targets::MCUX86_32TargetInfo::getTargetDefines(), clang::targets::MicrosoftARM64TargetInfo::getTargetDefines(), clang::targets::MicrosoftARMleTargetInfo::getTargetDefines(), clang::targets::MicrosoftMipsTargetInfo::getTargetDefines(), clang::targets::MicrosoftX86_32TargetInfo::getTargetDefines(), clang::targets::MicrosoftX86_64TargetInfo::getTargetDefines(), clang::targets::MinGWARMTargetInfo::getTargetDefines(), clang::targets::MinGWMipsTargetInfo::getTargetDefines(), clang::targets::MinGWX86_32TargetInfo::getTargetDefines(), clang::targets::RTEMSX86_32TargetInfo::getTargetDefines(), and InitializePredefinedMacros().
|
inlinevirtual |
Returns the target ID if supported.
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 1321 of file TargetInfo.h.
|
inline |
Retrieve the target options.
Definition at line 326 of file TargetInfo.h.
References getTargetOpts().
Referenced by clang::SemaHLSL::ActOnTopLevelFunction(), clang::HLSLFrontendAction::ExecuteAction(), getDarwinTargetVariantSDKVersion(), getOffloadArch(), getOffloadArch(), clang::ASTContext::getOpenMPDefaultSimdAlign(), getSDKVersion(), getSupportedOpenCLOpts(), getSupportedOpenCLOpts(), clang::targets::AArch64TargetInfo::getTargetDefines(), clang::targets::BPFTargetInfo::getTargetDefines(), clang::targets::LoongArchTargetInfo::getTargetDefines(), clang::targets::RISCVTargetInfo::getTargetDefines(), clang::targets::X86TargetInfo::getTargetDefines(), getTargetOpts(), handleClusterDimsAttr(), handleNoClusterAttr(), hasInt128Type(), clang::targets::MipsTargetInfo::hasInt128Type(), clang::targets::AArch64TargetInfo::parseTargetAttr(), clang::CodeGen::CodeGenModule::Release(), setCommandLineOpenCLOpts(), and clang::targets::AArch64TargetInfo::validateGlobalRegisterVariable().
|
inline |
Returns the target triple of the primary target.
Definition at line 1316 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::SemaHLSL::ActOnTopLevelFunction(), addLinkOptionsPostorder(), adjust(), clang::targets::AMDGPUTargetInfo::adjust(), clang::targets::BaseSPIRTargetInfo::adjust(), clang::targets::PPCTargetInfo::adjust(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), clang::ASTContext::AtomicUsesUnsupportedLibcall(), buildGlobalBlock(), BuiltinCpu(), canPassInRegisters(), captureInLambda(), clang::SemaARM::CheckARMBuiltinExclusiveCall(), clang::SemaX86::CheckBuiltinFunctionCall(), CheckBuiltinTargetInSupported(), CheckBuiltinTargetNotInUnsupported(), clang::Sema::CheckCallingConvAttr(), clang::targets::WindowsARM64TargetInfo::checkCallingConvention(), clang::SemaHLSL::CheckEntryPoint(), CheckMultiVersionFunction(), CheckMultiVersionValue(), clang::SemaARM::CheckNeonBuiltinFunctionCall(), checkObjCMethodX86VectorTypes(), clang::SemaSPIRV::CheckSPIRVBuiltinFunctionCall(), clang::Sema::checkTypeSupport(), checkVAStartABI(), clang::CodeGen::computeSPIRKernelABIInfo(), configureBlocksRuntimeObject(), clang::Interpreter::create(), clang::ExtractAPIAction::CreateASTConsumer(), clang::WrappingExtractAPIAction::CreateASTConsumer(), clang::CompilerInstance::createTarget(), clang::targets::DarwinAArch64TargetInfo::DarwinAArch64TargetInfo(), clang::Sema::diagnoseUnavailableAlignedAllocation(), DoEmitAvailabilityWarning(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), EmitBitTestIntrinsic(), clang::CIRGen::CIRGenFunction::emitCXXThrowExpr(), clang::CIRGen::CIRGenFunction::emitCXXTryStmtUnderScope(), emitGlobalDtorWithCXAAtExit(), emitIsPlatformVersionAtLeast(), clang::CodeGen::CodeGenFunction::EmitMSVCBuiltinExpr(), EmitMSVCRTSetJmp(), clang::CodeGen::CodeGenFunction::EmitMultiVersionResolver(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), EmitTargetArchBuiltinExpr(), emitTargetArchBuiltinExpr(), clang::HLSLFrontendAction::ExecuteAction(), clang::targets::AMDGPUTargetInfo::fillValidCPUList(), clang::targets::RISCVTargetInfo::fillValidCPUList(), clang::targets::X86TargetInfo::fillValidCPUList(), clang::targets::RISCVTargetInfo::fillValidTuneCPUList(), clang::DeclSpec::Finish(), clang::CIRGen::EHPersonality::get(), clang::CodeGen::EHPersonality::get(), clang::targets::X86TargetInfo::getABI(), clang::analyze_scanf::ScanfSpecifier::getArgType(), clang::targets::ARMTargetInfo::getBuiltinVaListKind(), clang::targets::HexagonTargetInfo::getBuiltinVaListKind(), getCallingConvKind(), getCallingConvMangling(), getCCForDeclaratorChunk(), getCIRGenToUse(), getCodegenToUse(), getCPersonality(), getCreateFlagValue(), getCXXPersonality(), getInstrProfSection(), clang::targets::AMDGPUTargetInfo::getMaxPointerWidth(), getObjCPersonality(), getObjCXXPersonality(), getOffloadArch(), clang::targets::AMDGPUTargetInfo::getPointerWidthV(), clang::targets::SystemZTargetInfo::getPointerWidthV(), clang::CIRGen::CIRGenModule::getTargetCIRGenInfo(), clang::targets::AArch64TargetInfo::getTargetDefines(), clang::targets::AMDGPUTargetInfo::getTargetDefines(), clang::targets::ARMTargetInfo::getTargetDefines(), clang::targets::MicrosoftARM64TargetInfo::getTargetDefines(), clang::targets::PPCTargetInfo::getTargetDefines(), clang::targets::RISCVTargetInfo::getTargetDefines(), clang::targets::SparcV8TargetInfo::getTargetDefines(), clang::targets::SparcV9TargetInfo::getTargetDefines(), clang::targets::SystemZTargetInfo::getTargetDefines(), clang::targets::X86TargetInfo::getTargetDefines(), clang::targets::AMDGPUTargetInfo::getTargetID(), getTypeInfoLinkage(), getTypeInfoLinkage(), handleAliasAttr(), handleAsDoubleBuiltin(), handleAvailabilityAttr(), handleBuiltinAliasAttr(), handleClusterDimsAttr(), handleCodeModelAttr(), handleDeviceKernelAttr(), handleHlslClip(), handleHlslSplitdouble(), handleInterruptAttr(), handleMSPointerTypeQualifierAttr(), handleNakedAttr(), HandleNeonVectorTypeAttr(), handleNoClusterAttr(), clang::SemaHLSL::handleNumThreadsAttr(), handlePackedAttr(), handlePatchableFunctionEntryAttr(), handleTargetClonesAttr(), clang::targets::AMDGPUTargetInfo::handleTargetFeatures(), clang::targets::PPCTargetInfo::handleTargetFeatures(), clang::targets::RISCVTargetInfo::handleTargetFeatures(), clang::targets::SystemZTargetInfo::handleTargetFeatures(), handleTargetVersionAttr(), handleWeakImportAttr(), clang::targets::AMDGPUTargetInfo::hasBFloat16Type(), clang::targets::LoongArchTargetInfo::hasFeature(), clang::targets::RISCVTargetInfo::hasFeature(), clang::targets::X86TargetInfo::hasFeature(), hasPS4DLLImportExport(), clang::targets::AMDGPUTargetInfo::initFeatureMap(), clang::targets::ARMTargetInfo::initFeatureMap(), clang::targets::LoongArchTargetInfo::initFeatureMap(), clang::targets::PPCTargetInfo::initFeatureMap(), clang::targets::RISCVTargetInfo::initFeatureMap(), clang::targets::SPIRV64AMDGCNTargetInfo::initFeatureMap(), clang::targets::X86TargetInfo::initFeatureMap(), InitializePredefinedMacros(), InitializeStandardPredefinedMacros(), clang::CodeGen::ABIInfo::isAndroid(), isArc4RandomAvailable(), clang::targets::ARMTargetInfo::isBranchProtectionSupportedArch(), isDefaultStdCall(), clang::FunctionDecl::isMSVCRTEntryPoint(), isNonViableMultiVersionOverload(), clang::CodeGen::ABIInfo::isOHOSFamily(), isPermittedNeonBaseType(), isSEHTrySupported(), isTargetArch(), isTargetEnvironment(), isTargetOS(), isTargetVariantEnvironment(), isTargetVariantOS(), isTargetVendor(), isThreadWrapperReplaceable(), isTrivialForMSVC(), clang::targets::AMDGPUTargetInfo::isValidCPUName(), clang::targets::RISCVTargetInfo::isValidCPUName(), clang::targets::X86TargetInfo::isValidCPUName(), clang::targets::RISCVTargetInfo::isValidTuneCPUName(), isVarDeclStrongDefinition(), IsVectorConversion(), isVkPipelineBuiltin(), clang::SemaHLSL::mergeVkConstantIdAttr(), MultiVersionTypesCompatible(), patchDefaultTargetVersion(), clang::targets::PPC32TargetInfo::PPC32TargetInfo(), clang::CompilerInstance::printDiagnosticStats(), clang::CodeGen::CodeGenFunction::ProcessOrderScopeAMDGCN(), clang::Preprocessor::processPathForFileMacro(), ReferenceDllExportedMembers(), clang::hlsl::ResourceBindingAttrs::ResourceBindingAttrs(), clang::targets::AMDGPUTargetInfo::setCPU(), clang::targets::X86TargetInfo::setCPU(), clang::targets::PPC64TargetInfo::setMaxAtomicWidth(), clang::targets::MipsTargetInfo::setN32N64ABITypes(), clang::targets::MipsTargetInfo::setN64ABITypes(), clang::targets::AMDGPUTargetInfo::setSupportedOpenCLOpts(), setWindowsItaniumDLLImport(), ShouldDiagnoseAvailabilityInContext(), shouldDLLImportComdatSymbols(), clang::targets::SparcV8TargetInfo::SparcV8TargetInfo(), clang::targets::SparcV9TargetInfo::SparcV9TargetInfo(), clang::targets::SPIRTargetInfo::SPIRTargetInfo(), clang::targets::SPIRV32TargetInfo::SPIRV32TargetInfo(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SPIRV64TargetInfo::SPIRV64TargetInfo(), clang::targets::RISCVTargetInfo::supportsCpuInit(), clang::targets::PPCTargetInfo::supportsCpuIs(), clang::targets::RISCVTargetInfo::supportsCpuIs(), clang::targets::PPCTargetInfo::supportsCpuSupports(), clang::targets::RISCVTargetInfo::supportsCpuSupports(), clang::targets::X86TargetInfo::supportsExtendIntArgs(), supportsIFunc(), supportsMultiVersioning(), clang::targets::PPCTargetInfo::validateCpuIs(), clang::targets::RISCVTargetInfo::validateCpuIs(), clang::targets::PPCTargetInfo::validateCpuSupports(), clang::targets::AArch64TargetInfo::validateGlobalRegisterVariable(), clang::targets::RISCVTargetInfo::validateGlobalRegisterVariable(), clang::targets::MipsTargetInfo::validateTarget(), clang::targets::WindowsX86_32TargetInfo::WindowsX86_32TargetInfo(), wrapWithBPFPreserveStaticOffset(), clang::targets::X86_64TargetInfo::X86_64TargetInfo(), and clang::targets::X86TargetInfo::X86TargetInfo().
Return the alignment (in bits) of the specified integer type enum.
getTypeAlign - Return the alignment (in bits) of the specified integer type enum.
For example, SignedInt -> getIntAlign().
Definition at line 378 of file TargetInfo.cpp.
References getCharAlign(), getIntAlign(), getLongAlign(), getLongLongAlign(), getShortAlign(), clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by getChar16Align(), getChar32Align(), and getWCharAlign().
| const char * TargetInfo::getTypeConstantSuffix | ( | IntType | T | ) | const |
Return the constant suffix for the specified integer type enum.
getTypeConstantSuffix - Return the constant suffix for the specified integer type enum.
For example, SignedLong -> "L".
Definition at line 253 of file TargetInfo.cpp.
References getCharWidth(), getIntWidth(), getShortWidth(), clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by DefineExactWidthIntType(), DefineTypeSize(), InitializePredefinedMacros(), and InitializeStandardPredefinedMacros().
|
static |
Return the printf format modifier for the specified integer type enum.
getTypeFormatModifier - Return the printf format modifier for the specified integer type enum.
For example, SignedLong -> "l".
Definition at line 278 of file TargetInfo.cpp.
References clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by DefineFmt().
|
static |
Return the user string for the specified integer type enum.
getTypeName - Return the user string for the specified integer type enum.
For example, SignedShort -> "short".
Definition at line 235 of file TargetInfo.cpp.
References clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by DefineType().
Return the width (in bits) of the specified integer type enum.
getTypeWidth - Return the width (in bits) of the specified integer type enum.
For example, SignedInt -> getIntWidth().
Definition at line 296 of file TargetInfo.cpp.
References getCharWidth(), getIntWidth(), getLongLongWidth(), getLongWidth(), getShortWidth(), clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by clang::SemaPPC::CheckPPCBuiltinFunctionCall(), DefineExactWidthIntType(), DefineExactWidthIntTypeSize(), DefineTypeSize(), DefineTypeWidth(), getChar16Width(), getChar32Width(), getIntMaxTWidth(), cir::getPtrDiffCIRTy(), getWCharWidth(), and InitializePredefinedMacros().
|
inline |
Definition at line 427 of file TargetInfo.h.
References getCorrespondingUnsignedType(), and clang::TransferrableTargetInfo::Int16Type.
Referenced by DefineExactWidthIntType().
|
inline |
Definition at line 423 of file TargetInfo.h.
References getCorrespondingUnsignedType(), and clang::TransferrableTargetInfo::Int64Type.
Referenced by DefineExactWidthIntType(), and DefineExactWidthIntTypeSize().
|
inline |
Definition at line 404 of file TargetInfo.h.
References getCorrespondingUnsignedType(), and clang::TransferrableTargetInfo::IntMaxType.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 415 of file TargetInfo.h.
References getCorrespondingUnsignedType(), and clang::TransferrableTargetInfo::IntPtrType.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 627 of file TargetInfo.h.
References clang::TransferrableTargetInfo::AccumWidth, getAccumIBits(), getUnsignedAccumScale(), and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by InitializePredefinedMacros().
|
inline |
getUnsignedAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned _Accum' type.
Definition at line 624 of file TargetInfo.h.
References clang::TransferrableTargetInfo::AccumScale, and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by getUnsignedAccumIBits(), and InitializePredefinedMacros().
|
inline |
getUnsignedFractScale - Return the number of fractional bits in a 'unsigned _Fract' type.
Definition at line 664 of file TargetInfo.h.
References getFractScale(), and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by InitializePredefinedMacros().
|
inline |
Definition at line 637 of file TargetInfo.h.
References getLongAccumIBits(), getUnsignedLongAccumScale(), clang::TransferrableTargetInfo::LongAccumWidth, and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by InitializePredefinedMacros().
|
inline |
getUnsignedLongAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned long _Accum' type.
Definition at line 634 of file TargetInfo.h.
References clang::TransferrableTargetInfo::LongAccumScale, and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by getUnsignedLongAccumIBits(), and InitializePredefinedMacros().
|
inline |
getUnsignedLongFractScale - Return the number of fractional bits in a 'unsigned long _Fract' type.
Definition at line 670 of file TargetInfo.h.
References getLongFractScale(), and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by InitializePredefinedMacros().
Definition at line 411 of file TargetInfo.h.
References getCorrespondingUnsignedType(), and getPtrDiffType().
|
inline |
Definition at line 616 of file TargetInfo.h.
References getShortAccumIBits(), getUnsignedShortAccumScale(), clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint, and clang::TransferrableTargetInfo::ShortAccumWidth.
Referenced by InitializePredefinedMacros().
|
inline |
getUnsignedShortAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned short _Accum' type.
Definition at line 613 of file TargetInfo.h.
References clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint, and clang::TransferrableTargetInfo::ShortAccumScale.
Referenced by getUnsignedShortAccumIBits(), and InitializePredefinedMacros().
|
inline |
getUnsignedShortFractScale - Return the number of fractional bits in a 'unsigned short _Fract' type.
Definition at line 657 of file TargetInfo.h.
References getShortFractScale(), and clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint.
Referenced by InitializePredefinedMacros().
|
inlinevirtual |
Reimplemented in clang::targets::MipsTargetInfo, and clang::targets::X86_64TargetInfo.
Definition at line 898 of file TargetInfo.h.
References clang::Default, and getPointerWidth().
Referenced by parseModeAttrArg().
|
inline |
Returns the default value of the USER_LABEL_PREFIX macro, which is the prefix given to user symbols by default.
On most platforms this is "", but it is "_" on some.
Definition at line 926 of file TargetInfo.h.
References UserLabelPrefix.
Referenced by InitializePredefinedMacros(), and clang::MangleContext::mangleName().
|
inlinevirtual |
Returns target-specific min and max values VScale_Range.
Reimplemented in clang::targets::AArch64TargetInfo, and clang::targets::RISCVTargetInfo.
Definition at line 1050 of file TargetInfo.h.
Referenced by HandleRISCVRVVVectorBitsTypeAttr(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inlinevirtual |
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 1875 of file TargetInfo.h.
|
inline |
Definition at line 773 of file TargetInfo.h.
References getTypeAlign(), and clang::TransferrableTargetInfo::WCharType.
|
inline |
Definition at line 418 of file TargetInfo.h.
References clang::TransferrableTargetInfo::WCharType.
Referenced by EvaluateValue(), and InitializePredefinedMacros().
|
inline |
getWCharWidth/Align - Return the size of 'wchar_t' for this target, in bits.
Definition at line 772 of file TargetInfo.h.
References getTypeWidth(), and clang::TransferrableTargetInfo::WCharType.
Referenced by clang::CharLiteralParser::CharLiteralParser(), and EvaluateValue().
|
inline |
Definition at line 419 of file TargetInfo.h.
References clang::TransferrableTargetInfo::WIntType.
Referenced by InitializePredefinedMacros().
|
inline |
Get the fixed alignment value in bits for a member that follows a zero length bitfield.
Definition at line 965 of file TargetInfo.h.
References clang::TransferrableTargetInfo::ZeroLengthBitfieldBoundary.
|
inlinevirtual |
Replace some escaped characters with another string based on target-specific rules.
Reimplemented in clang::targets::AVRTargetInfo, and clang::targets::M68kTargetInfo.
Definition at line 1302 of file TargetInfo.h.
References clang::C.
Referenced by clang::GCCAsmStmt::AnalyzeAsmString().
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DarwinI386TargetInfo, clang::targets::DarwinX86_64TargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1548 of file TargetInfo.h.
|
inlinevirtual |
The first value in the pair is the minimum offset between two objects to avoid false sharing (destructive interference).
The second value in the pair is maximum size of contiguous memory to promote true sharing (constructive interference). Neither of these values are considered part of the ABI and can be changed by targets at any time.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::PPC32TargetInfo, clang::targets::PPC64TargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, and clang::targets::SystemZTargetInfo.
Definition at line 1935 of file TargetInfo.h.
Referenced by InitializePredefinedMacros().
|
inline |
Returns whether or not the AArch64 ACLE built-in types are available on this target.
Definition at line 1071 of file TargetInfo.h.
References HasAArch64ACLETypes.
|
inline |
Check whether this target support '#pragma options align=mac68k'.
Definition at line 984 of file TargetInfo.h.
References HasAlignMac68kSupport.
|
inlinevirtual |
Determine whether the _BFloat16 type is supported on this target.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::NVPTXTargetInfo, and clang::targets::RISCVTargetInfo.
Definition at line 723 of file TargetInfo.h.
References HasBFloat16, and HasFullBFloat16.
Referenced by ConvertDeclSpecToType(), and clang::QualType::UseExcessPrecision().
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcV8TargetInfo, clang::targets::SparcV9TargetInfo, clang::targets::SystemZTargetInfo, clang::targets::X86_32TargetInfo, clang::targets::X86_64TargetInfo, and clang::targets::XCoreTargetInfo.
Definition at line 689 of file TargetInfo.h.
Referenced by ConvertDeclSpecToType().
|
inlinevirtual |
Returns true if the given target supports lock-free atomic operations at the specified width and alignment.
Definition at line 864 of file TargetInfo.h.
References getCharWidth(), and getMaxAtomicInlineWidth().
Referenced by getLockFreeValue().
|
inline |
Returns whether or not type __builtin_ms_va_list type is available on this target.
Definition at line 1067 of file TargetInfo.h.
References HasBuiltinMSVaList.
|
inline |
Return true iff unaligned accesses are cheap.
This affects placement and size of bitfield loads/stores. (Not the ABI-mandated placement of the bitfields themselves.)
Definition at line 917 of file TargetInfo.h.
References hasUnalignedAccess().
|
inlinevirtual |
Determine whether the target has fast native support for operations on half types.
Definition at line 711 of file TargetInfo.h.
References HasFastHalfType.
Referenced by clang::CodeGen::CodeGenFunction::EmitCommonNeonBuiltinExpr(), and clang::QualType::UseExcessPrecision().
|
inlinevirtual |
Determine whether the given target has the given feature.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::ARMTargetInfo, clang::targets::BaseSPIRVTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SPIRTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1554 of file TargetInfo.h.
References Feature.
Referenced by clang::Sema::BuildResolvedCallExpr(), clang::SemaRISCV::CheckBuiltinFunctionCall(), clang::CheckInvalidVLENandLMUL(), clang::SemaMIPS::CheckMipsBuiltinCpu(), CheckMultiVersionFunction(), clang::DeclSpec::Finish(), getOffloadArch(), HandleArmSveVectorBitsTypeAttr(), clang::SemaARM::handleInterruptAttr(), clang::SemaRISCV::handleInterruptAttr(), HandleNeonVectorTypeAttr(), and HandleRISCVRVVVectorBitsTypeAttr().
|
inlinevirtual |
Check if target has a given feature enabled.
Definition at line 1445 of file TargetInfo.h.
Referenced by adjust(), clang::OpenCLOptions::diagnoseFeatureExtensionDifferences(), clang::OpenCLOptions::diagnoseUnsupportedFeatureDependencies(), handleClusterDimsAttr(), handleNoClusterAttr(), InitializeOpenCLFeatureTestMacros(), setDependentOpenCLOpts(), validateOpenCLTarget(), and clang::targets::X86TargetInfo::validateOperandSize().
|
inlinevirtual |
Determine whether the __float128 type is supported on this target.
Definition at line 717 of file TargetInfo.h.
References HasFloat128.
Referenced by ConvertDeclSpecToType(), getRealTypeByWidth(), clang::targets::AMDGPUTargetInfo::setAuxTarget(), and clang::targets::SPIRV64AMDGCNTargetInfo::setAuxTarget().
|
inlinevirtual |
Determine whether the _Float16 type is supported on this target.
Definition at line 720 of file TargetInfo.h.
References HasFloat16.
Referenced by ConvertDeclSpecToType(), InitializePredefinedMacros(), and clang::QualType::UseExcessPrecision().
|
inlinevirtual |
Determine whether return of a floating point value is supported on this target.
Definition at line 739 of file TargetInfo.h.
References HasFPReturn.
Referenced by clang::Sema::checkTypeSupport().
|
inlinevirtual |
Determine whether the BFloat type is fully supported on this target, i.e arithemtic operations.
Definition at line 729 of file TargetInfo.h.
References HasFullBFloat16.
Referenced by clang::QualType::UseExcessPrecision().
|
inlinevirtual |
Whether to support HIP image/texture API's.
Reimplemented in clang::targets::AMDGPUTargetInfo.
Definition at line 1928 of file TargetInfo.h.
Referenced by InitializeStandardPredefinedMacros().
|
inlinevirtual |
Determine whether the __ibm128 type is supported on this target.
Definition at line 732 of file TargetInfo.h.
References HasIbm128.
Referenced by ConvertDeclSpecToType(), and getRealTypeByWidth().
|
inlinevirtual |
Determine whether the __int128 type is supported on this target.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::MipsTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, and clang::targets::X86_64TargetInfo.
Definition at line 678 of file TargetInfo.h.
References clang::Default, getPointerWidth(), and getTargetOpts().
Referenced by ChangeIntegralSignedness(), ConvertDeclSpecToType(), clang::targets::SPIRV64AMDGCNTargetInfo::hasInt128Type(), InitializePredefinedMacros(), and clang::CodeGen::swiftcall::isLegalIntegerType().
|
inlinevirtual |
Determine whether the long double type is supported on this target.
Definition at line 735 of file TargetInfo.h.
References HasLongDouble.
Referenced by clang::Sema::checkTypeSupport(), and DetectPrecisionLossInComplexDivision().
|
inline |
Definition at line 1908 of file TargetInfo.h.
References HasMicrosoftRecordLayout.
|
inlinevirtual |
Definition at line 675 of file TargetInfo.h.
References HasMustTail.
|
inline |
Return true if {|} are normal characters in the asm string.
If this returns false (the default), then {abc|xyz} is syntax that says that when compiling for asm variant #0, "abc" should be generated, but when compiling for asm variant #1, "xyz" should be generated.
Definition at line 1670 of file TargetInfo.h.
References NoAsmVariants.
|
inlinevirtual |
Does this target support "protected" visibility?
Any target which dynamic libraries will naturally support something like "default" (meaning that the symbol is visible outside this shared object) and "hidden" (meaning that it isn't) visibilities, but "protected" is really an ELF-specific concept with weird semantics designed around the convenience of dynamic linker implementations. Which is not to suggest that there's consistent target-independent semantics for "default" visibility either; the entire thing is pretty badly mangled.
Reimplemented in clang::targets::AppleMachOTargetInfo< AArch64leTargetInfo >, clang::targets::AppleMachOTargetInfo< ARMleTargetInfo >, clang::targets::AppleMachOTargetInfo< X86_32TargetInfo >, and clang::targets::AppleMachOTargetInfo< X86_64TargetInfo >.
Definition at line 1350 of file TargetInfo.h.
Referenced by handleVisibilityAttr().
|
inlinevirtual |
Definition at line 1360 of file TargetInfo.h.
References getTriple().
Referenced by ShouldUseExternalRTTIDescriptor().
|
inline |
Returns whether or not the RISC-V V built-in types are available on this target.
Definition at line 1075 of file TargetInfo.h.
References HasRISCVVTypes.
Referenced by clang::Sema::checkTypeSupport().
|
inlinevirtual |
Controls if __builtin_longjmp / __builtin_setjmp can be lowered to llvm.eh.sjlj.longjmp / llvm.eh.sjlj.setjmp.
Reimplemented in clang::targets::ARMTargetInfo, clang::targets::PPCTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::VETargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1808 of file TargetInfo.h.
|
inlinevirtual |
Determine whether constrained floating point is supported on this target.
Definition at line 742 of file TargetInfo.h.
References HasStrictFP.
|
inline |
Return true iff unaligned accesses are a single instruction (rather than a synthesized sequence).
Definition at line 912 of file TargetInfo.h.
References HasUnalignedAccess.
Referenced by hasCheapUnalignedBitFieldAccess().
|
virtual |
Initialize the map with the default set of target features for the CPU this should include all legal feature strings on the target.
Reimplemented in clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 565 of file TargetInfo.cpp.
References clang::DiagnosticsEngine::Report(), and setFeatureEnabled().
Referenced by clang::targets::AMDGPUTargetInfo::initFeatureMap(), clang::targets::ARMTargetInfo::initFeatureMap(), clang::targets::HexagonTargetInfo::initFeatureMap(), clang::targets::LoongArchTargetInfo::initFeatureMap(), clang::targets::MipsTargetInfo::initFeatureMap(), clang::targets::NVPTXTargetInfo::initFeatureMap(), clang::targets::PPCTargetInfo::initFeatureMap(), clang::targets::RISCVTargetInfo::initFeatureMap(), clang::targets::SPIRV64AMDGCNTargetInfo::initFeatureMap(), clang::targets::SystemZTargetInfo::initFeatureMap(), and clang::targets::X86TargetInfo::initFeatureMap().
Returns true if an address space can be safely converted to another.
| A | address space of target in source language. |
| B | address space of source in source language. |
Reimplemented in clang::targets::AMDGPUTargetInfo, and clang::targets::NVPTXTargetInfo.
Definition at line 510 of file TargetInfo.h.
Referenced by clang::Qualifiers::isTargetAddressSpaceSupersetOf().
|
inline |
Definition at line 1733 of file TargetInfo.h.
References BigEndian.
Referenced by ARMMVEVectorReinterpret(), EmitSignBit(), InitializePredefinedMacros(), and clang::interp::interp__builtin_memcmp().
|
inlinevirtual |
Determine if the Architecture in this TargetInfo supports branch protection.
Reimplemented in clang::targets::ARMTargetInfo.
Definition at line 1523 of file TargetInfo.h.
References Arch.
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::MipsTargetInfo, and clang::targets::PPCTargetInfo.
Definition at line 1059 of file TargetInfo.h.
|
inline |
Definition at line 1734 of file TargetInfo.h.
References BigEndian.
Referenced by clang::interp::DoBitCast(), clang::interp::DoBitCastPtr(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), InitializeStandardPredefinedMacros(), and clang::interp::readPointerToBuffer().
|
inlinevirtual |
Returns true if NaN encoding is IEEE 754-2008.
Only MIPS allows a different encoding.
Reimplemented in clang::targets::MipsTargetInfo.
Definition at line 1311 of file TargetInfo.h.
Referenced by clang::interp::interp__builtin_nan().
|
inline |
Determine whether the given target feature is read only.
Definition at line 1559 of file TargetInfo.h.
References Feature, and ReadOnlyFeatures.
|
inline |
Whether the target supports SEH __try.
Definition at line 1658 of file TargetInfo.h.
References getTriple().
|
inlinevirtual |
Reimplemented in clang::targets::PPCTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1112 of file TargetInfo.h.
Referenced by collectClobbers().
|
inline |
Whether the target supports thread-local storage.
Definition at line 1644 of file TargetInfo.h.
References TLSSupported.
Referenced by handleDeclspecThreadAttr().
Returns true if the type is signed; false otherwise.
isTypeSigned - Return whether an integer types is signed.
Returns true if the type is signed; false otherwise.
Definition at line 396 of file TargetInfo.cpp.
References clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::T, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedLongLong, and clang::TransferrableTargetInfo::UnsignedShort.
Referenced by buildDynamicCastToVoidAfterNullCheck(), DefineExactWidthIntType(), DefineExactWidthIntTypeSize(), DefineFmt(), DefineTypeSize(), EvaluateValue(), cir::getPtrDiffCIRTy(), clang::ASTContext::InitBuiltinTypes(), and InitializePredefinedMacros().
| bool TargetInfo::isValidClobber | ( | StringRef | Name | ) | const |
Returns whether the passed in string is a valid clobber in an inline asm statement.
isValidClobber - Returns whether the passed in string is a valid clobber in an inline asm statement.
Definition at line 689 of file TargetInfo.cpp.
References isValidGCCRegisterName().
|
inlinevirtual |
Determine whether this TargetInfo supports the given CPU name.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::MipsTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SparcV9TargetInfo, clang::targets::SystemZTargetInfo, clang::targets::X86TargetInfo, and clang::targets::XtensaTargetInfo.
Definition at line 1413 of file TargetInfo.h.
Referenced by isValidTuneCPUName().
|
inlinevirtual |
Determine whether this TargetInfo supports the given feature.
Reimplemented in clang::targets::ARMTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1459 of file TargetInfo.h.
References Feature.
Referenced by CheckMultiVersionValue().
|
virtual |
Returns whether the passed in string is a valid register name according to GCC.
isValidGCCRegisterName - Returns whether the passed in string is a valid register name according to GCC.
This is used by Sema for inline asm statements.
Reimplemented in clang::targets::BPFTargetInfo.
Definition at line 697 of file TargetInfo.cpp.
References getGCCAddlRegNames(), getGCCRegAliases(), getGCCRegNames(), clang::isDigit(), and removeGCCRegisterPrefix().
Referenced by getNormalizedGCCRegisterName(), and isValidClobber().
|
inlinevirtual |
Determine whether this TargetInfo supports the given CPU name for tuning.
Reimplemented in clang::targets::RISCVTargetInfo, clang::targets::SystemZTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1419 of file TargetInfo.h.
References isValidCPUName().
|
inline |
Whether target supports variable-length arrays.
Definition at line 1655 of file TargetInfo.h.
References VLASupported.
|
inline |
Definition at line 941 of file TargetInfo.h.
References clang::TransferrableTargetInfo::UseSignedCharForObjCBool.
Referenced by clang::CompilerInstance::ExecuteAction().
|
virtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::LoongArchTargetInfo, and clang::targets::RISCVTargetInfo.
Definition at line 580 of file TargetInfo.cpp.
References Feature.
Referenced by clang::CodeGen::ABIInfo::appendAttributeMangling(), CheckDeclarationCausesMultiVersioning(), CheckMultiVersionAdditionalDecl(), CheckMultiVersionValue(), and clang::CodeGen::CodeGenFunction::EmitRISCVMultiVersionResolver().
|
protected |
Set the data layout based on current triple and ABI.
Definition at line 201 of file TargetInfo.cpp.
References DataLayoutString, and getABI().
Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::CygwinARMTargetInfo::CygwinARMTargetInfo(), clang::targets::AArch64TargetInfo::handleTargetFeatures(), and clang::targets::M68kTargetInfo::M68kTargetInfo().
|
protected |
Set the data layout to the given string.
Definition at line 199 of file TargetInfo.cpp.
References DataLayoutString.
Referenced by clang::targets::ARCTargetInfo::ARCTargetInfo(), clang::targets::AVRTargetInfo::AVRTargetInfo(), clang::targets::BPFTargetInfo::BPFTargetInfo(), clang::targets::CSKYTargetInfo::CSKYTargetInfo(), clang::targets::CygwinX86_32TargetInfo::CygwinX86_32TargetInfo(), clang::targets::DarwinI386TargetInfo::DarwinI386TargetInfo(), clang::targets::DarwinX86_64TargetInfo::DarwinX86_64TargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::MipsTargetInfo::handleTargetFeatures(), clang::targets::HexagonTargetInfo::HexagonTargetInfo(), clang::targets::LanaiTargetInfo::LanaiTargetInfo(), clang::targets::LoongArch32TargetInfo::LoongArch32TargetInfo(), clang::targets::LoongArch64TargetInfo::LoongArch64TargetInfo(), clang::targets::MCUX86_32TargetInfo::MCUX86_32TargetInfo(), clang::targets::MSP430TargetInfo::MSP430TargetInfo(), clang::targets::PPC32TargetInfo::PPC32TargetInfo(), clang::targets::PPC64TargetInfo::PPC64TargetInfo(), clang::targets::RISCV32TargetInfo::RISCV32TargetInfo(), clang::targets::RISCV64TargetInfo::RISCV64TargetInfo(), clang::targets::PPC64TargetInfo::setABI(), clang::targets::RISCV32TargetInfo::setABI(), clang::targets::RISCV64TargetInfo::setABI(), clang::targets::SparcV8elTargetInfo::SparcV8elTargetInfo(), clang::targets::SparcV8TargetInfo::SparcV8TargetInfo(), clang::targets::SparcV9TargetInfo::SparcV9TargetInfo(), clang::targets::SPIR32TargetInfo::SPIR32TargetInfo(), clang::targets::SPIR64TargetInfo::SPIR64TargetInfo(), clang::targets::SPIRV32TargetInfo::SPIRV32TargetInfo(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SPIRV64IntelTargetInfo::SPIRV64IntelTargetInfo(), clang::targets::SPIRV64TargetInfo::SPIRV64TargetInfo(), clang::targets::SPIRVTargetInfo::SPIRVTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), clang::targets::TCELETargetInfo::TCELETargetInfo(), clang::targets::TCETargetInfo::TCETargetInfo(), clang::targets::UEFIX86_64TargetInfo::UEFIX86_64TargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::WebAssembly32TargetInfo::WebAssembly32TargetInfo(), clang::targets::WebAssembly64TargetInfo::WebAssembly64TargetInfo(), clang::targets::WindowsX86_32TargetInfo::WindowsX86_32TargetInfo(), clang::targets::X86_32TargetInfo::X86_32TargetInfo(), clang::targets::X86_64TargetInfo::X86_64TargetInfo(), clang::targets::XCoreTargetInfo::XCoreTargetInfo(), and clang::targets::XtensaTargetInfo::XtensaTargetInfo().
| bool TargetInfo::resolveSymbolicName | ( | const char *& | Name, |
| ArrayRef< ConstraintInfo > | OutputConstraints, | ||
| unsigned & | Index ) const |
Definition at line 857 of file TargetInfo.cpp.
Referenced by simplifyConstraint(), validateAsmConstraint(), and validateInputConstraint().
|
inlinevirtual |
Use the specified ABI.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::ARMTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::LinuxTargetInfo< X86_32TargetInfo >, clang::targets::LinuxTargetInfo< X86_64TargetInfo >, clang::targets::LoongArch32TargetInfo, clang::targets::LoongArch64TargetInfo, clang::targets::MipsTargetInfo, clang::targets::PPC64TargetInfo, clang::targets::RISCV32TargetInfo, clang::targets::RISCV64TargetInfo, and clang::targets::WebAssemblyTargetInfo.
Definition at line 1433 of file TargetInfo.h.
Referenced by clang::targets::LinuxTargetInfo< X86_32TargetInfo >::setABI().
|
inlinevirtual |
Reimplemented in clang::targets::AMDGPUTargetInfo, and clang::targets::SPIRV64AMDGCNTargetInfo.
Definition at line 1906 of file TargetInfo.h.
References TargetInfo().
Referenced by clang::CompilerInstance::createTarget().
|
inlinevirtual |
Set supported OpenCL extensions as written on command line.
Definition at line 1843 of file TargetInfo.h.
References getTargetOpts(), supportAllOpenCLOpts(), and V.
|
inlinevirtual |
Target the specified CPU.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SparcV9TargetInfo, clang::targets::SystemZTargetInfo, clang::targets::X86TargetInfo, and clang::targets::XtensaTargetInfo.
Definition at line 1400 of file TargetInfo.h.
|
virtual |
Set features that depend on other features.
Definition at line 651 of file TargetInfo.cpp.
References getSupportedOpenCLOpts(), hasFeatureEnabled(), and setFeatureEnabled().
|
inlinevirtual |
Enable or disable a specific target feature; the feature name must be valid.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::BPFTargetInfo, clang::targets::PPCTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1452 of file TargetInfo.h.
Referenced by initFeatureMap(), and setDependentOpenCLOpts().
|
inlinevirtual |
Use the specified unit for FP math.
Reimplemented in clang::targets::ARMTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1440 of file TargetInfo.h.
|
inlinevirtual |
Set the maximum inline or promote width lock-free atomic operation for the given target.
Reimplemented in clang::targets::LoongArch32TargetInfo, clang::targets::LoongArch64TargetInfo, clang::targets::PPC64TargetInfo, clang::targets::RISCV32TargetInfo, clang::targets::RISCV64TargetInfo, clang::targets::X86_32TargetInfo, and clang::targets::X86_64TargetInfo.
Definition at line 861 of file TargetInfo.h.
|
inlinevirtual |
Set supported OpenCL extensions and optional core features.
Reimplemented in clang::targets::AMDGPUTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::NVPTXTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1834 of file TargetInfo.h.
|
inlinevirtual |
Does this target aim for semantic compatibility with Microsoft C++ code using dllimport/export attributes?
Definition at line 1354 of file TargetInfo.h.
References getTriple().
Referenced by checkDLLAttributeRedeclaration(), and handleDLLAttr().
|
inline |
Should the Microsoft mangling scheme be used for C Calling Convention.
Definition at line 1393 of file TargetInfo.h.
References UseMicrosoftManglingForC.
Referenced by funcHasParameterSizeMangling(), and getCallingConvMangling().
| std::string TargetInfo::simplifyConstraint | ( | StringRef | Constraint, |
| SmallVectorImpl< ConstraintInfo > * | OutCons = nullptr ) const |
Definition at line 1068 of file TargetInfo.cpp.
References convertConstraint(), resolveSymbolicName(), and clang::Result.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and validateAsmConstraint().
Definition at line 1836 of file TargetInfo.h.
References V.
Referenced by setCommandLineOpenCLOpts(), clang::targets::BaseSPIRTargetInfo::setSupportedOpenCLOpts(), and clang::targets::X86TargetInfo::setSupportedOpenCLOpts().
|
inlinevirtual |
Reimplemented in clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1587 of file TargetInfo.h.
|
inlinevirtual |
Reimplemented in clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1586 of file TargetInfo.h.
Referenced by BuiltinCpu().
|
inlinevirtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1585 of file TargetInfo.h.
Referenced by BuiltinCpu().
|
inlinevirtual |
Whether the option -fextend-arguments={32,64} is supported on the target.
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1737 of file TargetInfo.h.
|
inline |
Identify whether this target supports IFuncs.
Definition at line 1571 of file TargetInfo.h.
References getTriple().
Referenced by AppendCPUSpecificCPUDispatchMangling(), clang::CodeGen::CodeGenFunction::EmitAArch64MultiVersionResolver(), clang::CodeGen::CodeGenFunction::EmitRISCVMultiVersionResolver(), and clang::CodeGen::CodeGenFunction::EmitX86MultiVersionResolver().
|
inline |
Identify whether this target supports multiversioning of functions, which requires support for cpu_supports and cpu_is functionality.
Definition at line 1565 of file TargetInfo.h.
References getTriple().
Referenced by CheckMultiVersionAdditionalRules().
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 846 of file TargetInfo.h.
|
inlinevirtual |
Determine whether this TargetInfo supports tune in target attribute.
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1426 of file TargetInfo.h.
|
inline |
Specify if mangling based on address space map should be used or not for language specific address spaces.
Definition at line 1026 of file TargetInfo.h.
References UseAddrSpaceMapMangling.
Referenced by isAddrSpaceMapManglingEnabled().
|
inline |
Check whether the alignment of bit-field types is respected when laying out structures.
Definition at line 947 of file TargetInfo.h.
References clang::TransferrableTargetInfo::UseBitFieldTypeAlignment.
|
inline |
Check whether explicit bitfield alignment attributes should be.
Definition at line 979 of file TargetInfo.h.
References clang::TransferrableTargetInfo::UseExplicitBitFieldAlignment.
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARMTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::WebAssemblyTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1020 of file TargetInfo.h.
Referenced by needsConversionOfHalfVec().
|
inline |
Check whether zero length bitfield alignment is respected if they are leading members.
Definition at line 959 of file TargetInfo.h.
References clang::TransferrableTargetInfo::UseLeadingZeroLengthBitfield.
|
inline |
Check whether _Complex long double should use the "fp2ret" flavor of Objective-C message passing on this target.
Definition at line 1012 of file TargetInfo.h.
References ComplexLongDoubleUsesFP2Ret.
|
inline |
Check whether the given real type should use the "fpret" flavor of Objective-C message passing on this target.
Definition at line 1006 of file TargetInfo.h.
References RealTypeUsesObjCFPRetMask, and clang::T.
|
inline |
Check if the Objective-C built-in boolean type should be signed char.
Otherwise, if this returns false, the normal built-in boolean type should also be used for Objective-C.
Definition at line 938 of file TargetInfo.h.
References clang::TransferrableTargetInfo::UseSignedCharForObjCBool.
Referenced by InitializePredefinedMacros().
|
inline |
Check whether zero length bitfields should force alignment of the next member.
Definition at line 953 of file TargetInfo.h.
References clang::TransferrableTargetInfo::UseZeroLengthBitfieldAlignment.
|
pure virtual |
Implemented in clang::targets::AArch64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::ARCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::AVRTargetInfo, clang::targets::BaseSPIRTargetInfo, clang::targets::BPFTargetInfo, clang::targets::CSKYTargetInfo, clang::targets::DirectXTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::LanaiTargetInfo, clang::targets::LoongArchTargetInfo, clang::targets::M68kTargetInfo, clang::targets::MipsTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::SPIRV64AMDGCNTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::TCETargetInfo, clang::targets::VETargetInfo, clang::targets::X86TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::XtensaTargetInfo.
References resolveSymbolicName(), and simplifyConstraint().
Referenced by validateInputConstraint(), and validateOutputConstraint().
|
inlinevirtual |
Determine if this TargetInfo supports the given branch protection specification.
Reimplemented in clang::targets::AArch64TargetInfo, and clang::targets::ARMTargetInfo.
Definition at line 1529 of file TargetInfo.h.
References Arch.
|
inlinevirtual |
Reimplemented in clang::targets::AArch64TargetInfo, and clang::targets::ARMTargetInfo.
Definition at line 1272 of file TargetInfo.h.
|
inlinevirtual |
Reimplemented in clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1601 of file TargetInfo.h.
Referenced by BuiltinCpu(), and CheckMultiVersionValue().
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1605 of file TargetInfo.h.
Referenced by handleCPUSpecificAttr().
|
inlinevirtual |
Reimplemented in clang::targets::AArch64TargetInfo, clang::targets::PPCTargetInfo, clang::targets::RISCVTargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1591 of file TargetInfo.h.
Referenced by BuiltinCpu(), and CheckMultiVersionValue().
|
inlinevirtual |
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 in clang::targets::AArch64TargetInfo, clang::targets::RISCVTargetInfo, clang::targets::X86_64TargetInfo, and clang::targets::X86TargetInfo.
Definition at line 1246 of file TargetInfo.h.
| bool TargetInfo::validateInputConstraint | ( | MutableArrayRef< ConstraintInfo > | OutputConstraints, |
| ConstraintInfo & | info ) const |
Definition at line 880 of file TargetInfo.cpp.
References clang::TargetInfo::ConstraintInfo::ConstraintStr, clang::TargetInfo::ConstraintInfo::getTiedOperand(), clang::TargetInfo::ConstraintInfo::hasTiedOperand(), resolveSymbolicName(), clang::TargetInfo::ConstraintInfo::setAllowsMemory(), clang::TargetInfo::ConstraintInfo::setAllowsRegister(), clang::TargetInfo::ConstraintInfo::setRequiresImmediate(), clang::TargetInfo::ConstraintInfo::setTiedOperand(), and validateAsmConstraint().
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1266 of file TargetInfo.h.
|
virtual |
Check that OpenCL target has valid options setting based on OpenCL version.
validateOpenCLTarget - Check that OpenCL target has valid options setting based on OpenCL version.
Definition at line 881 of file Targets.cpp.
References clang::OpenCLOptions::diagnoseFeatureExtensionDifferences(), clang::OpenCLOptions::diagnoseUnsupportedFeatureDependencies(), clang::LangOptions::getOpenCLCompatibleVersion(), clang::LangOptions::getOpenCLVersionTuple(), getSupportedOpenCLOpts(), hasFeatureEnabled(), clang::OpenCLOptions::isOpenCLOptionCoreIn(), and clang::DiagnosticsEngine::Report().
| bool TargetInfo::validateOutputConstraint | ( | ConstraintInfo & | Info | ) | const |
Definition at line 783 of file TargetInfo.cpp.
References clang::TargetInfo::ConstraintInfo::allowsMemory(), clang::TargetInfo::ConstraintInfo::allowsRegister(), clang::TargetInfo::ConstraintInfo::earlyClobber(), clang::TargetInfo::ConstraintInfo::getConstraintStr(), clang::TargetInfo::ConstraintInfo::isReadWrite(), clang::TargetInfo::ConstraintInfo::setAllowsMemory(), clang::TargetInfo::ConstraintInfo::setAllowsRegister(), clang::TargetInfo::ConstraintInfo::setEarlyClobber(), clang::TargetInfo::ConstraintInfo::setIsReadWrite(), and validateAsmConstraint().
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inlinevirtual |
Reimplemented in clang::targets::X86TargetInfo.
Definition at line 1260 of file TargetInfo.h.
|
virtual |
Determine whether the given pointer-authentication key is valid.
The value has been coerced to type 'int'.
Reimplemented in clang::targets::AArch64TargetInfo.
Definition at line 997 of file TargetInfo.cpp.
|
inlinevirtual |
Check the target is valid after it is fully initialized.
Reimplemented in clang::targets::AArch64TargetInfo, and clang::targets::MipsTargetInfo.
Definition at line 1897 of file TargetInfo.h.
|
protected |
Definition at line 259 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), adjust(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), getAddressSpaceMap(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), clang::targets::AMDGPUTargetInfo::setAddressSpaceMap(), clang::targets::BaseSPIRTargetInfo::setAddressSpaceMap(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), TargetInfo(), clang::targets::TCETargetInfo::TCETargetInfo(), clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo(), and clang::targets::X86TargetInfo::X86TargetInfo().
|
protected |
Definition at line 281 of file TargetInfo.h.
Referenced by TargetInfo().
|
protected |
Definition at line 286 of file TargetInfo.h.
Referenced by getARMCDECoprocMask(), clang::targets::ARMTargetInfo::handleTargetFeatures(), and TargetInfo().
|
protected |
Definition at line 312 of file TargetInfo.h.
Referenced by clang::targets::AMDGPUTargetInfo::adjust(), and getAtomicOpts().
|
protected |
Definition at line 233 of file TargetInfo.h.
Referenced by clang::targets::MipsTargetInfo::getTargetDefines(), clang::targets::XtensaTargetInfo::getTargetDefines(), isBigEndian(), isLittleEndian(), TargetInfo(), clang::targets::TCELETargetInfo::TCELETargetInfo(), and clang::targets::XtensaTargetInfo::XtensaTargetInfo().
|
protected |
Definition at line 269 of file TargetInfo.h.
Referenced by TargetInfo(), useObjCFP2RetForComplexLongDouble(), and clang::targets::X86_64TargetInfo::X86_64TargetInfo().
|
protected |
Definition at line 292 of file TargetInfo.h.
Referenced by getDarwinTargetVariantTriple().
|
protected |
Definition at line 253 of file TargetInfo.h.
Referenced by getDataLayoutString(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), resetDataLayout(), and resetDataLayout().
|
protected |
Definition at line 240 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), allowHalfArgsAndReturns(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::ARMTargetInfo::handleTargetFeatures(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), and TargetInfo().
|
protected |
Definition at line 275 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), hasAArch64ACLETypes(), and TargetInfo().
|
protected |
Definition at line 265 of file TargetInfo.h.
Referenced by clang::targets::DarwinARMTargetInfo::DarwinARMTargetInfo(), clang::targets::DarwinI386TargetInfo::DarwinI386TargetInfo(), hasAlignMac68kSupport(), and TargetInfo().
|
protected |
Definition at line 243 of file TargetInfo.h.
Referenced by clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::ARMTargetInfo::getTargetDefines(), clang::targets::ARMTargetInfo::handleTargetFeatures(), clang::targets::HexagonTargetInfo::handleTargetFeatures(), clang::targets::X86TargetInfo::handleTargetFeatures(), hasBFloat16Type(), clang::targets::ARMTargetInfo::hasBFloat16Type(), clang::targets::HexagonTargetInfo::hasBFloat16Type(), and TargetInfo().
|
protected |
Definition at line 272 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), hasBuiltinMSVaList(), TargetInfo(), and clang::targets::X86_64TargetInfo::X86_64TargetInfo().
|
protected |
Definition at line 237 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::ARMTargetInfo::getTargetDefines(), clang::targets::ARMTargetInfo::handleTargetFeatures(), clang::targets::HexagonTargetInfo::handleTargetFeatures(), clang::targets::RISCVTargetInfo::handleTargetFeatures(), clang::targets::X86TargetInfo::handleTargetFeatures(), hasFastHalfType(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), and TargetInfo().
|
protected |
Definition at line 241 of file TargetInfo.h.
Referenced by clang::targets::PPCTargetInfo::getTargetDefines(), clang::targets::X86TargetInfo::getTargetDefines(), clang::targets::PPCTargetInfo::handleTargetFeatures(), clang::targets::PPCTargetInfo::hasFeature(), hasFloat128Type(), clang::targets::MinGWX86_32TargetInfo::MinGWX86_32TargetInfo(), clang::targets::MinGWX86_64TargetInfo::MinGWX86_64TargetInfo(), clang::targets::AMDGPUTargetInfo::setAuxTarget(), clang::targets::SPIRV64AMDGCNTargetInfo::setAuxTarget(), and TargetInfo().
|
protected |
Definition at line 242 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::ARMTargetInfo::handleTargetFeatures(), clang::targets::HexagonTargetInfo::handleTargetFeatures(), clang::targets::X86TargetInfo::handleTargetFeatures(), hasFloat16Type(), clang::targets::LoongArchTargetInfo::LoongArchTargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), clang::targets::RISCVTargetInfo::RISCVTargetInfo(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), and TargetInfo().
|
protected |
Definition at line 249 of file TargetInfo.h.
Referenced by hasFPReturn(), and TargetInfo().
|
protected |
Definition at line 244 of file TargetInfo.h.
Referenced by clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::AMDGPUTargetInfo::handleTargetFeatures(), clang::targets::ARMTargetInfo::handleTargetFeatures(), clang::targets::X86TargetInfo::handleTargetFeatures(), hasBFloat16Type(), clang::targets::X86TargetInfo::hasFeature(), hasFullBFloat16Type(), and TargetInfo().
|
protected |
Definition at line 247 of file TargetInfo.h.
Referenced by hasIbm128Type(), clang::targets::PPCTargetInfo::PPCTargetInfo(), and TargetInfo().
|
protected |
Definition at line 248 of file TargetInfo.h.
Referenced by clang::targets::X86TargetInfo::handleTargetFeatures(), hasLongDoubleType(), and TargetInfo().
Definition at line 294 of file TargetInfo.h.
Referenced by adjust(), hasMicrosoftRecordLayout(), and TargetInfo().
|
protected |
Definition at line 232 of file TargetInfo.h.
Referenced by hasMustTail(), and TargetInfo().
|
protected |
Definition at line 278 of file TargetInfo.h.
Referenced by hasRISCVVTypes(), clang::targets::RISCVTargetInfo::RISCVTargetInfo(), and TargetInfo().
|
protected |
Definition at line 250 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::PPCTargetInfo::handleTargetFeatures(), hasStrictFP(), clang::targets::PPCTargetInfo::PPCTargetInfo(), clang::targets::RISCVTargetInfo::RISCVTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), TargetInfo(), and clang::targets::X86TargetInfo::X86TargetInfo().
|
protected |
Definition at line 284 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::AArch64TargetInfo::getTargetDefines(), clang::targets::ARMTargetInfo::getTargetDefines(), clang::targets::AArch64TargetInfo::handleTargetFeatures(), clang::targets::ARMTargetInfo::handleTargetFeatures(), clang::targets::LoongArchTargetInfo::handleTargetFeatures(), clang::targets::MipsTargetInfo::handleTargetFeatures(), hasUnalignedAccess(), clang::targets::LoongArch64TargetInfo::LoongArch64TargetInfo(), clang::targets::PPCTargetInfo::PPCTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), TargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo(), and clang::targets::X86TargetInfo::X86TargetInfo().
|
protected |
Definition at line 252 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::PPCTargetInfo::adjust(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::BPFTargetInfo::BPFTargetInfo(), clang::targets::CSKYTargetInfo::CSKYTargetInfo(), getMaxAtomicInlineWidth(), clang::targets::HexagonTargetInfo::HexagonTargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), clang::targets::PPC32TargetInfo::PPC32TargetInfo(), clang::targets::PPC64TargetInfo::PPC64TargetInfo(), clang::targets::LoongArch32TargetInfo::setMaxAtomicWidth(), clang::targets::LoongArch64TargetInfo::setMaxAtomicWidth(), clang::targets::PPC64TargetInfo::setMaxAtomicWidth(), clang::targets::RISCV32TargetInfo::setMaxAtomicWidth(), clang::targets::RISCV64TargetInfo::setMaxAtomicWidth(), clang::targets::X86_32TargetInfo::setMaxAtomicWidth(), clang::targets::X86_64TargetInfo::setMaxAtomicWidth(), clang::targets::MipsTargetInfo::setN32N64ABITypes(), clang::targets::MipsTargetInfo::setO32ABITypes(), clang::targets::SparcV8TargetInfo::SparcV8TargetInfo(), clang::targets::SparcV9TargetInfo::SparcV9TargetInfo(), clang::targets::SPIR32TargetInfo::SPIR32TargetInfo(), clang::targets::SPIR64TargetInfo::SPIR64TargetInfo(), clang::targets::SPIRV32TargetInfo::SPIRV32TargetInfo(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SPIRV64TargetInfo::SPIRV64TargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), TargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo(), clang::targets::X86_32TargetInfo::X86_32TargetInfo(), clang::targets::X86_64TargetInfo::X86_64TargetInfo(), and clang::targets::XtensaTargetInfo::XtensaTargetInfo().
|
protected |
Definition at line 252 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::BPFTargetInfo::BPFTargetInfo(), clang::targets::CSKYTargetInfo::CSKYTargetInfo(), getMaxAtomicPromoteWidth(), clang::targets::HexagonTargetInfo::HexagonTargetInfo(), clang::targets::PPC32TargetInfo::PPC32TargetInfo(), clang::targets::PPC64TargetInfo::PPC64TargetInfo(), clang::targets::LoongArch32TargetInfo::setMaxAtomicWidth(), clang::targets::LoongArch64TargetInfo::setMaxAtomicWidth(), clang::targets::RISCV32TargetInfo::setMaxAtomicWidth(), clang::targets::RISCV64TargetInfo::setMaxAtomicWidth(), clang::targets::MipsTargetInfo::setN32N64ABITypes(), clang::targets::MipsTargetInfo::setO32ABITypes(), clang::targets::SparcV8TargetInfo::SparcV8TargetInfo(), clang::targets::SparcV9TargetInfo::SparcV9TargetInfo(), clang::targets::SPIRV64AMDGCNTargetInfo::SPIRV64AMDGCNTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), TargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo(), clang::targets::X86_32TargetInfo::X86_32TargetInfo(), clang::targets::X86_64TargetInfo::X86_64TargetInfo(), and clang::targets::XtensaTargetInfo::XtensaTargetInfo().
|
protected |
Definition at line 290 of file TargetInfo.h.
Referenced by adjust(), getMaxBitIntWidth(), and TargetInfo().
|
protected |
Definition at line 288 of file TargetInfo.h.
Referenced by getMaxOpenCLWorkGroupSize(), and TargetInfo().
|
protected |
Definition at line 255 of file TargetInfo.h.
Referenced by getMCountName(), clang::targets::LoongArchTargetInfo::LoongArchTargetInfo(), clang::targets::RISCVTargetInfo::RISCVTargetInfo(), and TargetInfo().
|
protected |
Definition at line 236 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::ARCTargetInfo::ARCTargetInfo(), clang::targets::ARMTargetInfo::ARMTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::CSKYTargetInfo::CSKYTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), hasNoAsmVariants(), clang::targets::HexagonTargetInfo::HexagonTargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), TargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo(), clang::targets::XCoreTargetInfo::XCoreTargetInfo(), and clang::targets::XtensaTargetInfo::XtensaTargetInfo().
|
mutableprotected |
Definition at line 262 of file TargetInfo.h.
Referenced by clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::DarwinARMTargetInfo::getOSDefines(), getPlatformMinVersion(), and TargetInfo().
|
mutableprotected |
Definition at line 261 of file TargetInfo.h.
Referenced by clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::DarwinARMTargetInfo::getOSDefines(), getPlatformName(), and TargetInfo().
|
protected |
Definition at line 309 of file TargetInfo.h.
Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), and isReadOnlyFeature().
|
protected |
Definition at line 267 of file TargetInfo.h.
Referenced by TargetInfo(), useObjCFPRetForRealType(), clang::targets::X86_32TargetInfo::X86_32TargetInfo(), and clang::targets::X86_64TargetInfo::X86_64TargetInfo().
|
protected |
Definition at line 256 of file TargetInfo.h.
Referenced by clang::targets::BPFTargetInfo::BPFTargetInfo(), getRegParmMax(), clang::targets::LanaiTargetInfo::LanaiTargetInfo(), TargetInfo(), clang::targets::VETargetInfo::VETargetInfo(), clang::targets::X86_32TargetInfo::X86_32TargetInfo(), and clang::targets::X86_64TargetInfo::X86_64TargetInfo().
|
protected |
Definition at line 256 of file TargetInfo.h.
Referenced by TargetInfo().
|
protected |
Definition at line 257 of file TargetInfo.h.
Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo(), clang::targets::DarwinAArch64TargetInfo::DarwinAArch64TargetInfo(), clang::targets::DarwinARMTargetInfo::DarwinARMTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), getCXXABI(), clang::targets::ItaniumWindowsARMleTargetInfo::ItaniumWindowsARMleTargetInfo(), clang::targets::MicrosoftARM64TargetInfo::MicrosoftARM64TargetInfo(), clang::targets::MicrosoftARMleTargetInfo::MicrosoftARMleTargetInfo(), clang::targets::MicrosoftMipsTargetInfo::MicrosoftMipsTargetInfo(), clang::targets::MinGWARM64TargetInfo::MinGWARM64TargetInfo(), clang::targets::MinGWARMTargetInfo::MinGWARMTargetInfo(), clang::targets::MinGWMipsTargetInfo::MinGWMipsTargetInfo(), clang::targets::MipsTargetInfo::MipsTargetInfo(), TargetInfo(), and clang::targets::UEFIX86_64TargetInfo::UEFIX86_64TargetInfo().
|
protected |
Definition at line 234 of file TargetInfo.h.
Referenced by clang::targets::AVRTargetInfo::AVRTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::BPFTargetInfo::BPFTargetInfo(), clang::targets::CygwinARMTargetInfo::CygwinARMTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::ARMTargetInfo::handleTargetFeatures(), isTLSSupported(), clang::targets::MSP430TargetInfo::MSP430TargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), clang::targets::SystemZTargetInfo::SystemZTargetInfo(), TargetInfo(), and clang::targets::TCETargetInfo::TCETargetInfo().
|
protected |
Specify if mangling based on address space map should be used or not for language specific address spaces.
Definition at line 385 of file TargetInfo.h.
Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), TargetInfo(), clang::targets::TCETargetInfo::TCETargetInfo(), and useAddressSpaceMapMangling().
Definition at line 258 of file TargetInfo.h.
Referenced by clang::targets::CygwinX86_32TargetInfo::CygwinX86_32TargetInfo(), clang::targets::CygwinX86_64TargetInfo::CygwinX86_64TargetInfo(), and shouldUseMicrosoftCCforMangling().
|
protected |
Definition at line 254 of file TargetInfo.h.
Referenced by clang::targets::CygwinX86_32TargetInfo::CygwinX86_32TargetInfo(), getUserLabelPrefix(), TargetInfo(), and clang::targets::WindowsX86_32TargetInfo::WindowsX86_32TargetInfo().
|
protected |
Definition at line 235 of file TargetInfo.h.
Referenced by clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), clang::targets::DirectXTargetInfo::DirectXTargetInfo(), isVLASupported(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and TargetInfo().