clang  9.0.0svn
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::TargetInfo Class Referenceabstract

Exposes information about the current target. More...

#include "clang/Basic/TargetInfo.h"

Inheritance diagram for clang::TargetInfo:
Inheritance graph
[legend]
Collaboration diagram for clang::TargetInfo:
Collaboration graph
[legend]

Classes

struct  AddlRegName
 
struct  ConstraintInfo
 
struct  GCCRegAlias
 

Public Types

enum  BuiltinVaListKind {
  CharPtrBuiltinVaList = 0, VoidPtrBuiltinVaList, AArch64ABIBuiltinVaList, PNaClABIBuiltinVaList,
  PowerABIBuiltinVaList, X86_64ABIBuiltinVaList, AAPCSABIBuiltinVaList, SystemZBuiltinVaList
}
 The different kinds of __builtin_va_list types defined by the target implementation. More...
 
enum  CallingConvMethodType { CCMT_Unknown, CCMT_Member, CCMT_NonMember }
 
enum  CallingConvCheckResult { CCCR_OK, CCCR_Warning, CCCR_Ignore }
 
enum  CallingConvKind { CCK_Default, CCK_ClangABI4OrPS4, CCK_MicrosoftWin64 }
 
enum  OpenCLTypeKind {
  OCLTK_Default, OCLTK_ClkEvent, OCLTK_Event, OCLTK_Image,
  OCLTK_Pipe, OCLTK_Queue, OCLTK_ReserveID, OCLTK_Sampler
}
 
- Public Types inherited from clang::TransferrableTargetInfo
enum  IntType {
  NoInt = 0, SignedChar, UnsignedChar, SignedShort,
  UnsignedShort, SignedInt, UnsignedInt, SignedLong,
  UnsignedLong, SignedLongLong, UnsignedLongLong
}
 ===-— Target Data Type Query Methods ----------------------------—===// More...
 
enum  RealType {
  NoFloat = 255, Float = 0, Double, LongDouble,
  Float128
}
 

Public Member Functions

virtual ~TargetInfo ()
 
TargetOptionsgetTargetOpts () const
 Retrieve the target options. More...
 
IntType getSizeType () const
 
IntType getSignedSizeType () const
 
IntType getIntMaxType () const
 
IntType getUIntMaxType () const
 
IntType getPtrDiffType (unsigned AddrSpace) const
 
IntType getUnsignedPtrDiffType (unsigned 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 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. More...
 
unsigned getTypeWidth (IntType T) const
 Return the width (in bits) of the specified integer type enum. More...
 
virtual IntType getIntTypeByWidth (unsigned BitWidth, bool IsSigned) const
 Return integer type with specified width. More...
 
virtual IntType getLeastIntTypeByWidth (unsigned BitWidth, bool IsSigned) const
 Return the smallest integer type with at least the specified width. More...
 
RealType getRealTypeByWidth (unsigned BitWidth) const
 Return floating point type with specified width. More...
 
unsigned getTypeAlign (IntType T) const
 Return the alignment (in bits) of the specified integer type enum. More...
 
uint64_t getPointerWidth (unsigned AddrSpace) const
 Return the width of pointers on this target, for the specified address space. More...
 
uint64_t getPointerAlign (unsigned AddrSpace) const
 
virtual uint64_t getMaxPointerWidth () const
 Return the maximum width of pointers on this target. More...
 
virtual uint64_t getNullPointerValue (LangAS AddrSpace) const
 Get integer value for null pointer. More...
 
unsigned getBoolWidth () const
 Return the size of '_Bool' and C++ 'bool' for this target, in bits. More...
 
unsigned getBoolAlign () const
 Return the alignment of '_Bool' and C++ 'bool' for this target. More...
 
unsigned getCharWidth () const
 
unsigned getCharAlign () const
 
unsigned getShortWidth () const
 Return the size of 'signed short' and 'unsigned short' for this target, in bits. More...
 
unsigned getShortAlign () const
 Return the alignment of 'signed short' and 'unsigned short' for this target. More...
 
unsigned getIntWidth () const
 getIntWidth/Align - Return the size of 'signed int' and 'unsigned int' for this target, in bits. More...
 
unsigned getIntAlign () const
 
unsigned getLongWidth () const
 getLongWidth/Align - Return the size of 'signed long' and 'unsigned long' for this target, in bits. More...
 
unsigned getLongAlign () const
 
unsigned getLongLongWidth () const
 getLongLongWidth/Align - Return the size of 'signed long long' and 'unsigned long long' for this target, in bits. More...
 
unsigned getLongLongAlign () const
 
unsigned getShortAccumWidth () const
 getShortAccumWidth/Align - Return the size of 'signed short _Accum' and 'unsigned short _Accum' for this target, in bits. More...
 
unsigned getShortAccumAlign () const
 
unsigned getAccumWidth () const
 getAccumWidth/Align - Return the size of 'signed _Accum' and 'unsigned _Accum' for this target, in bits. More...
 
unsigned getAccumAlign () const
 
unsigned getLongAccumWidth () const
 getLongAccumWidth/Align - Return the size of 'signed long _Accum' and 'unsigned long _Accum' for this target, in bits. More...
 
unsigned getLongAccumAlign () const
 
unsigned getShortFractWidth () const
 getShortFractWidth/Align - Return the size of 'signed short _Fract' and 'unsigned short _Fract' for this target, in bits. More...
 
unsigned getShortFractAlign () const
 
unsigned getFractWidth () const
 getFractWidth/Align - Return the size of 'signed _Fract' and 'unsigned _Fract' for this target, in bits. More...
 
unsigned getFractAlign () const
 
unsigned getLongFractWidth () const
 getLongFractWidth/Align - Return the size of 'signed long _Fract' and 'unsigned long _Fract' for this target, in bits. More...
 
unsigned getLongFractAlign () const
 
unsigned getShortAccumScale () const
 getShortAccumScale/IBits - Return the number of fractional/integral bits in a 'signed short _Accum' type. More...
 
unsigned getShortAccumIBits () const
 
unsigned getAccumScale () const
 getAccumScale/IBits - Return the number of fractional/integral bits in a 'signed _Accum' type. More...
 
unsigned getAccumIBits () const
 
unsigned getLongAccumScale () const
 getLongAccumScale/IBits - Return the number of fractional/integral bits in a 'signed long _Accum' type. More...
 
unsigned getLongAccumIBits () const
 
unsigned getUnsignedShortAccumScale () const
 getUnsignedShortAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned short _Accum' type. More...
 
unsigned getUnsignedShortAccumIBits () const
 
unsigned getUnsignedAccumScale () const
 getUnsignedAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned _Accum' type. More...
 
unsigned getUnsignedAccumIBits () const
 
unsigned getUnsignedLongAccumScale () const
 getUnsignedLongAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned long _Accum' type. More...
 
unsigned getUnsignedLongAccumIBits () const
 
unsigned getShortFractScale () const
 getShortFractScale - Return the number of fractional bits in a 'signed short _Fract' type. More...
 
unsigned getFractScale () const
 getFractScale - Return the number of fractional bits in a 'signed _Fract' type. More...
 
unsigned getLongFractScale () const
 getLongFractScale - Return the number of fractional bits in a 'signed long _Fract' type. More...
 
unsigned getUnsignedShortFractScale () const
 getUnsignedShortFractScale - Return the number of fractional bits in a 'unsigned short _Fract' type. More...
 
unsigned getUnsignedFractScale () const
 getUnsignedFractScale - Return the number of fractional bits in a 'unsigned _Fract' type. More...
 
unsigned getUnsignedLongFractScale () const
 getUnsignedLongFractScale - Return the number of fractional bits in a 'unsigned long _Fract' type. More...
 
virtual bool hasInt128Type () const
 Determine whether the __int128 type is supported on this target. More...
 
virtual bool hasLegalHalfType () const
 Determine whether _Float16 is supported on this target. More...
 
virtual bool hasFloat128Type () const
 Determine whether the __float128 type is supported on this target. More...
 
virtual bool hasFloat16Type () const
 Determine whether the _Float16 type is supported on this target. More...
 
unsigned getSuitableAlign () const
 Return the alignment that is suitable for storing any object with a fundamental alignment requirement. More...
 
unsigned getDefaultAlignForAttributeAligned () const
 Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified. More...
 
unsigned getMinGlobalAlign () const
 getMinGlobalAlign - Return the minimum alignment of a global variable, unless its alignment is explicitly reduced via attributes. More...
 
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. More...
 
unsigned getWCharWidth () const
 getWCharWidth/Align - Return the size of 'wchar_t' for this target, in bits. More...
 
unsigned getWCharAlign () const
 
unsigned getChar16Width () const
 getChar16Width/Align - Return the size of 'char16_t' for this target, in bits. More...
 
unsigned getChar16Align () const
 
unsigned getChar32Width () const
 getChar32Width/Align - Return the size of 'char32_t' for this target, in bits. More...
 
unsigned getChar32Align () const
 
unsigned getHalfWidth () const
 getHalfWidth/Align/Format - Return the size/align/format of 'half'. More...
 
unsigned getHalfAlign () const
 
const llvm::fltSemantics & getHalfFormat () const
 
unsigned getFloatWidth () const
 getFloatWidth/Align/Format - Return the size/align/format of 'float'. More...
 
unsigned getFloatAlign () const
 
const llvm::fltSemantics & getFloatFormat () const
 
unsigned getDoubleWidth () const
 getDoubleWidth/Align/Format - Return the size/align/format of 'double'. More...
 
unsigned getDoubleAlign () const
 
const llvm::fltSemantics & getDoubleFormat () const
 
unsigned getLongDoubleWidth () const
 getLongDoubleWidth/Align/Format - Return the size/align/format of 'long double'. More...
 
unsigned getLongDoubleAlign () const
 
const llvm::fltSemantics & getLongDoubleFormat () const
 
unsigned getFloat128Width () const
 getFloat128Width/Align/Format - Return the size/align/format of '__float128'. More...
 
unsigned getFloat128Align () const
 
const llvm::fltSemantics & getFloat128Format () const
 
virtual bool useFloat128ManglingForLongDouble () const
 Return true if the 'long double' type should be mangled like __float128. More...
 
virtual unsigned getFloatEvalMethod () const
 Return the value for the C99 FLT_EVAL_METHOD macro. More...
 
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. More...
 
unsigned getMaxAtomicInlineWidth () const
 Return the maximum width lock-free atomic operation which can be inlined given the supported features of the given target. More...
 
virtual void setMaxAtomicWidth ()
 Set the maximum inline or promote width lock-free atomic operation for the given target. More...
 
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. More...
 
unsigned getMaxVectorAlign () const
 Return the maximum vector alignment supported for the given target. More...
 
unsigned getSimdDefaultAlign () const
 Return default simd alignment for the given target. More...
 
unsigned getIntMaxTWidth () const
 Return the size of intmax_t and uintmax_t for this target, in bits. More...
 
virtual unsigned getUnwindWordWidth () const
 
virtual unsigned getRegisterWidth () const
 Return the "preferred" register width on this target. More...
 
const char * getMCountName () const
 Returns the name of the mcount instrumentation function. More...
 
bool useSignedCharForObjCBool () const
 Check if the Objective-C built-in boolean type should be signed char. More...
 
void noSignedCharForObjCBool ()
 
bool useBitFieldTypeAlignment () const
 Check whether the alignment of bit-field types is respected when laying out structures. More...
 
bool useZeroLengthBitfieldAlignment () const
 Check whether zero length bitfields should force alignment of the next member. More...
 
unsigned getZeroLengthBitfieldBoundary () const
 Get the fixed alignment value in bits for a member that follows a zero length bitfield. More...
 
bool useExplicitBitFieldAlignment () const
 Check whether explicit bitfield alignment attributes should be. More...
 
bool hasAlignMac68kSupport () const
 Check whether this target support '#pragma options align=mac68k'. More...
 
const char * getTypeConstantSuffix (IntType T) const
 Return the constant suffix for the specified integer type enum. More...
 
bool useObjCFPRetForRealType (RealType T) const
 Check whether the given real type should use the "fpret" flavor of Objective-C message passing on this target. More...
 
bool useObjCFP2RetForComplexLongDouble () const
 Check whether _Complex long double should use the "fp2ret" flavor of Objective-C message passing on this target. More...
 
virtual bool useFP16ConversionIntrinsics () const
 Check whether llvm intrinsics such as llvm.convert.to.fp16 should be used to convert to and from __fp16. More...
 
bool useAddressSpaceMapMangling () const
 Specify if mangling based on address space map should be used or not for language specific address spaces. More...
 
virtual void getTargetDefines (const LangOptions &Opts, MacroBuilder &Builder) const =0
 ===-— Other target property query methods --------------------——===// More...
 
virtual ArrayRef< Builtin::InfogetTargetBuiltins () 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. More...
 
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. More...
 
virtual BuiltinVaListKind getBuiltinVaListKind () const =0
 Returns the kind of __builtin_va_list type that should be used with this target. More...
 
bool hasBuiltinMSVaList () const
 Returns whether or not type __builtin_ms_va_list type is available on this target. More...
 
bool isRenderScriptTarget () const
 Returns true for RenderScript. More...
 
bool isValidClobber (StringRef Name) const
 Returns whether the passed in string is a valid clobber in an inline asm statement. More...
 
virtual bool isValidGCCRegisterName (StringRef Name) const
 Returns whether the passed in string is a valid register name according to GCC. More...
 
StringRef getNormalizedGCCRegisterName (StringRef Name, bool ReturnCanonical=false) const
 Returns the "normalized" GCC register name. More...
 
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. More...
 
virtual bool validateGlobalRegisterVariable (StringRef RegName, unsigned RegSize, bool &HasSizeMismatch) const
 Validate register name used for global register variables. More...
 
bool validateOutputConstraint (ConstraintInfo &Info) const
 
bool validateInputConstraint (MutableArrayRef< ConstraintInfo > OutputConstraints, ConstraintInfo &info) const
 
virtual bool validateOutputSize (StringRef, unsigned) const
 
virtual bool validateInputSize (StringRef, unsigned) const
 
virtual bool validateConstraintModifier (StringRef, char, unsigned, std::string &) const
 
virtual bool validateAsmConstraint (const char *&Name, TargetInfo::ConstraintInfo &info) const =0
 
bool resolveSymbolicName (const char *&Name, ArrayRef< ConstraintInfo > OutputConstraints, unsigned &Index) const
 
virtual std::string convertConstraint (const char *&Constraint) const
 
virtual const char * getClobbers () const =0
 Returns a string of target-specific clobbers, in LLVM format. More...
 
virtual bool isNan2008 () const
 Returns true if NaN encoding is IEEE 754-2008. More...
 
const llvm::Triple & getTriple () const
 Returns the target triple of the primary target. More...
 
const llvm::DataLayout & getDataLayout () const
 
virtual bool hasProtectedVisibility () const
 Does this target support "protected" visibility? More...
 
virtual std::string isValidSectionSpecifier (StringRef SR) const
 An optional hook that targets can implement to perform semantic checking on attribute((section("foo"))) specifiers. More...
 
virtual void adjust (LangOptions &Opts)
 Set forced language options. More...
 
virtual void adjustTargetOptions (const CodeGenOptions &CGOpts, TargetOptions &TargetOpts) const
 Adjust target options based on codegen options. More...
 
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. More...
 
virtual StringRef getABI () const
 Get the ABI currently in use. More...
 
TargetCXXABI getCXXABI () const
 Get the C++ ABI currently in use. More...
 
virtual bool setCPU (const std::string &Name)
 Target the specified CPU. More...
 
virtual void fillValidCPUList (SmallVectorImpl< StringRef > &Values) const
 Fill a SmallVectorImpl with the valid values to setCPU. More...
 
virtual bool isValidCPUName (StringRef Name) const
 brief Determine whether this TargetInfo supports the given CPU name. More...
 
virtual bool setABI (const std::string &Name)
 Use the specified ABI. More...
 
virtual bool setFPMath (StringRef Name)
 Use the specified unit for FP math. More...
 
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. More...
 
virtual bool isValidFeatureName (StringRef Feature) const
 Determine whether this TargetInfo supports the given feature. More...
 
virtual bool handleTargetFeatures (std::vector< std::string > &Features, DiagnosticsEngine &Diags)
 Perform initialization based on the user configured set of features (e.g., +sse4). More...
 
virtual bool hasFeature (StringRef Feature) const
 Determine whether the given target has the given feature. More...
 
bool supportsMultiVersioning () const
 Identify whether this target supports multiversioning of functions, which requires support for cpu_supports and cpu_is functionality. More...
 
bool supportsIFunc () const
 Identify whether this target supports IFuncs. More...
 
virtual bool validateCpuSupports (StringRef Name) const
 
virtual unsigned multiVersionSortPriority (StringRef Name) const
 
virtual bool validateCpuIs (StringRef Name) const
 
virtual bool validateCPUSpecificCPUDispatch (StringRef Name) const
 
virtual char CPUSpecificManglingCharacter (StringRef Name) const
 
virtual void getCPUSpecificCPUDispatchFeatures (StringRef Name, llvm::SmallVectorImpl< StringRef > &Features) const
 
unsigned getRegParmMax () const
 
bool isTLSSupported () const
 Whether the target supports thread-local storage. More...
 
unsigned short getMaxTLSAlign () const
 Return the maximum alignment (in bits) of a TLS variable. More...
 
bool isVLASupported () const
 Whether target supports variable-length arrays. More...
 
bool isSEHTrySupported () const
 Whether the target supports SEH __try. More...
 
bool hasNoAsmVariants () const
 Return true if {|} are normal characters in the asm string. More...
 
virtual int getEHDataRegisterNumber (unsigned RegNo) const
 Return the register number that __builtin_eh_return_regno would return with the specified argument. More...
 
virtual const char * getStaticInitSectionSpecifier () const
 Return the section to use for C++ static initialization functions. More...
 
const LangASMapgetAddressSpaceMap () const
 
virtual LangAS getOpenCLBuiltinAddressSpace (unsigned AS) const
 Map from the address space field in builtin description strings to the language address space. More...
 
virtual LangAS getCUDABuiltinAddressSpace (unsigned AS) const
 Map from the address space field in builtin description strings to the language address space. More...
 
virtual llvm::Optional< LangASgetConstantAddressSpace () const
 Return an AST address space which can be used opportunistically for constant global memory. More...
 
StringRef getPlatformName () const
 Retrieve the name of the platform as it is used in the availability attribute. More...
 
VersionTuple getPlatformMinVersion () const
 Retrieve the minimum desired version of the platform, to which the program should be compiled. More...
 
bool isBigEndian () const
 
bool isLittleEndian () const
 
virtual CallingConv getDefaultCallingConv (CallingConvMethodType MT) const
 Gets the default calling convention for the given target and declaration context. More...
 
virtual CallingConvCheckResult checkCallingConvention (CallingConv CC) const
 Determines whether a given calling convention is valid for the target. More...
 
virtual CallingConvKind getCallingConvKind (bool ClangABICompat4) const
 
virtual bool hasSjLjLowering () const
 Controls if __builtin_longjmp / __builtin_setjmp can be lowered to llvm.eh.sjlj.longjmp / llvm.eh.sjlj.setjmp. More...
 
virtual bool checkCFProtectionBranchSupported (DiagnosticsEngine &Diags) const
 Check if the target supports CFProtection branch. More...
 
virtual bool checkCFProtectionReturnSupported (DiagnosticsEngine &Diags) const
 Check if the target supports CFProtection branch. More...
 
virtual bool allowsLargerPreferedTypeAlignment () const
 Whether target allows to overalign ABI-specified preferred alignment. More...
 
virtual void setSupportedOpenCLOpts ()
 Set supported OpenCL extensions and optional core features. More...
 
virtual void setOpenCLExtensionOpts ()
 Set supported OpenCL extensions as written on command line. More...
 
OpenCLOptionsgetSupportedOpenCLOpts ()
 Get supported OpenCL extensions and optional core features. More...
 
const OpenCLOptionsgetSupportedOpenCLOpts () const
 Get const supported OpenCL extensions and optional core features. More...
 
virtual LangAS getOpenCLTypeAddrSpace (OpenCLTypeKind TK) const
 Get address space for OpenCL type. More...
 
virtual unsigned getVtblPtrAddressSpace () const
 
virtual 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. More...
 
virtual void setAuxTarget (const TargetInfo *Aux)
 

Static Public Member Functions

static TargetInfoCreateTargetInfo (DiagnosticsEngine &Diags, const std::shared_ptr< TargetOptions > &Opts)
 Construct a target for the given options. More...
 
static IntType getCorrespondingUnsignedType (IntType T)
 
static bool isTypeSigned (IntType T)
 Returns true if the type is signed; false otherwise. More...
 
static const char * getTypeName (IntType T)
 Return the user string for the specified integer type enum. More...
 
static const char * getTypeFormatModifier (IntType T)
 Return the printf format modifier for the specified integer type enum. More...
 

Protected Member Functions

 TargetInfo (const llvm::Triple &T)
 
void resetDataLayout (StringRef DL)
 
void copyAuxTarget (const TargetInfo *Aux)
 Copy type and layout related info. More...
 
virtual uint64_t getPointerWidthV (unsigned AddrSpace) const
 
virtual uint64_t getPointerAlignV (unsigned AddrSpace) const
 
virtual enum IntType getPtrDiffTypeV (unsigned AddrSpace) const
 
virtual ArrayRef< const char * > getGCCRegNames () const =0
 
virtual ArrayRef< GCCRegAliasgetGCCRegAliases () const =0
 
virtual ArrayRef< AddlRegNamegetGCCAddlRegNames () const
 

Protected Attributes

bool BigEndian
 
bool TLSSupported
 
bool VLASupported
 
bool NoAsmVariants
 
bool HasLegalHalfType
 
bool HasFloat128
 
bool HasFloat16
 
unsigned char MaxAtomicPromoteWidth
 
unsigned char MaxAtomicInlineWidth
 
unsigned short SimdDefaultAlign
 
std::unique_ptr< llvm::DataLayout > DataLayout
 
const char * MCountName
 
unsigned char RegParmMax
 
unsigned char SSERegParmMax
 
TargetCXXABI TheCXXABI
 
const LangASMapAddrSpaceMap
 
StringRef PlatformName
 
VersionTuple PlatformMinVersion
 
unsigned HasAlignMac68kSupport: 1
 
unsigned RealTypeUsesObjCFPRet: 3
 
unsigned ComplexLongDoubleUsesFP2Ret: 1
 
unsigned HasBuiltinMSVaList: 1
 
unsigned IsRenderScriptTarget: 1
 
bool UseAddrSpaceMapMangling
 Specify if mangling based on address space map should be used or not for language specific address spaces. More...
 
- Protected Attributes inherited from clang::TransferrableTargetInfo
IntType SizeType
 
IntType IntMaxType
 
IntType PtrDiffType
 
IntType IntPtrType
 
IntType WCharType
 
IntType WIntType
 
IntType Char16Type
 
IntType Char32Type
 
IntType Int64Type
 
IntType SigAtomicType
 
IntType ProcessIDType
 
unsigned UseSignedCharForObjCBool: 1
 Whether Objective-C's built-in boolean type should be signed char. More...
 
unsigned UseBitFieldTypeAlignment: 1
 Control whether the alignment of bit-field types is respected when laying out structures. More...
 
unsigned UseZeroLengthBitfieldAlignment: 1
 Whether zero length bitfields (e.g., int : 0;) force alignment of the next bitfield. More...
 
unsigned UseExplicitBitFieldAlignment: 1
 Whether explicit bit field alignment attributes are honored. More...
 
unsigned ZeroLengthBitfieldBoundary
 If non-zero, specifies a fixed alignment value for bitfields that follow zero length bitfield, regardless of the zero length bitfield type. More...
 

Additional Inherited Members

- Public Attributes inherited from clang::TransferrableTargetInfo
unsigned char PointerWidth
 
unsigned char PointerAlign
 
unsigned char BoolWidth
 
unsigned char BoolAlign
 
unsigned char IntWidth
 
unsigned char IntAlign
 
unsigned char HalfWidth
 
unsigned char HalfAlign
 
unsigned char FloatWidth
 
unsigned char FloatAlign
 
unsigned char DoubleWidth
 
unsigned char DoubleAlign
 
unsigned char LongDoubleWidth
 
unsigned char LongDoubleAlign
 
unsigned char Float128Align
 
unsigned char LargeArrayMinWidth
 
unsigned char LargeArrayAlign
 
unsigned char LongWidth
 
unsigned char LongAlign
 
unsigned char LongLongWidth
 
unsigned char LongLongAlign
 
unsigned char ShortAccumWidth
 
unsigned char ShortAccumAlign
 
unsigned char AccumWidth
 
unsigned char AccumAlign
 
unsigned char LongAccumWidth
 
unsigned char LongAccumAlign
 
unsigned char ShortFractWidth
 
unsigned char ShortFractAlign
 
unsigned char FractWidth
 
unsigned char FractAlign
 
unsigned char LongFractWidth
 
unsigned char LongFractAlign
 
bool PaddingOnUnsignedFixedPoint
 
unsigned char ShortAccumScale
 
unsigned char AccumScale
 
unsigned char LongAccumScale
 
unsigned char SuitableAlign
 
unsigned char DefaultAlignForAttributeAligned
 
unsigned char MinGlobalAlign
 
unsigned short NewAlign
 
unsigned short MaxVectorAlign
 
unsigned short MaxTLSAlign
 
const llvm::fltSemantics * HalfFormat
 
const llvm::fltSemantics * FloatFormat
 
const llvm::fltSemantics * DoubleFormat
 
const llvm::fltSemantics * LongDoubleFormat
 
const llvm::fltSemantics * Float128Format
 

Detailed Description

Exposes information about the current target.

Definition at line 161 of file TargetInfo.h.

Member Enumeration Documentation

◆ BuiltinVaListKind

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

PNaClABIBuiltinVaList 

__builtin_va_list as defined by the PNaCl ABI: http://www.chromium.org/nativeclient/pnacl/bitcode-abi#TOC-Machine-Types

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 

Definition at line 223 of file TargetInfo.h.

◆ CallingConvCheckResult

Enumerator
CCCR_OK 
CCCR_Warning 
CCCR_Ignore 

Definition at line 1248 of file TargetInfo.h.

◆ CallingConvKind

Enumerator
CCK_Default 
CCK_ClangABI4OrPS4 
CCK_MicrosoftWin64 

Definition at line 1267 of file TargetInfo.h.

◆ CallingConvMethodType

Enumerator
CCMT_Unknown 
CCMT_Member 
CCMT_NonMember 

Definition at line 1233 of file TargetInfo.h.

◆ OpenCLTypeKind

Enumerator
OCLTK_Default 
OCLTK_ClkEvent 
OCLTK_Event 
OCLTK_Image 
OCLTK_Pipe 
OCLTK_Queue 
OCLTK_ReserveID 
OCLTK_Sampler 

Definition at line 1312 of file TargetInfo.h.

Constructor & Destructor Documentation

◆ TargetInfo()

TargetInfo::TargetInfo ( const llvm::Triple &  T)
protected

Definition at line 28 of file TargetInfo.cpp.

References clang::TransferrableTargetInfo::AccumAlign, clang::TransferrableTargetInfo::AccumScale, clang::TransferrableTargetInfo::AccumWidth, AddrSpaceMap, 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::TargetCXXABI::GenericItanium, clang::TransferrableTargetInfo::HalfAlign, clang::TransferrableTargetInfo::HalfFormat, clang::TransferrableTargetInfo::HalfWidth, HasAlignMac68kSupport, HasBuiltinMSVaList, HasFloat128, HasFloat16, HasLegalHalfType, clang::TransferrableTargetInfo::Int64Type, clang::TransferrableTargetInfo::IntAlign, clang::TransferrableTargetInfo::IntMaxType, clang::TransferrableTargetInfo::IntPtrType, clang::TransferrableTargetInfo::IntWidth, IsRenderScriptTarget, clang::TransferrableTargetInfo::LargeArrayAlign, clang::TransferrableTargetInfo::LargeArrayMinWidth, 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, MaxAtomicInlineWidth, MaxAtomicPromoteWidth, clang::TransferrableTargetInfo::MaxTLSAlign, clang::TransferrableTargetInfo::MaxVectorAlign, MCountName, clang::TargetCXXABI::Microsoft, clang::TransferrableTargetInfo::MinGlobalAlign, clang::TransferrableTargetInfo::NewAlign, NoAsmVariants, clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint, PlatformMinVersion, PlatformName, clang::TransferrableTargetInfo::PointerAlign, clang::TransferrableTargetInfo::PointerWidth, clang::TransferrableTargetInfo::ProcessIDType, clang::TransferrableTargetInfo::PtrDiffType, RealTypeUsesObjCFPRet, RegParmMax, clang::TargetCXXABI::set(), clang::TransferrableTargetInfo::ShortAccumAlign, clang::TransferrableTargetInfo::ShortAccumScale, clang::TransferrableTargetInfo::ShortAccumWidth, clang::TransferrableTargetInfo::ShortFractAlign, clang::TransferrableTargetInfo::ShortFractWidth, clang::TransferrableTargetInfo::SigAtomicType, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, SimdDefaultAlign, clang::TransferrableTargetInfo::SizeType, SSERegParmMax, clang::TransferrableTargetInfo::SuitableAlign, TheCXXABI, TLSSupported, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedShort, UseAddrSpaceMapMangling, clang::TransferrableTargetInfo::UseBitFieldTypeAlignment, clang::TransferrableTargetInfo::UseExplicitBitFieldAlignment, clang::TransferrableTargetInfo::UseSignedCharForObjCBool, clang::TransferrableTargetInfo::UseZeroLengthBitfieldAlignment, VLASupported, clang::TransferrableTargetInfo::WCharType, clang::TransferrableTargetInfo::WIntType, and clang::TransferrableTargetInfo::ZeroLengthBitfieldBoundary.

◆ ~TargetInfo()

TargetInfo::~TargetInfo ( )
virtual

Definition at line 136 of file TargetInfo.cpp.

Member Function Documentation

◆ adjust()

void TargetInfo::adjust ( LangOptions Opts)
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, and clang::targets::PPCTargetInfo.

Definition at line 324 of file TargetInfo.cpp.

References clang::TransferrableTargetInfo::DoubleAlign, clang::TransferrableTargetInfo::DoubleFormat, clang::TransferrableTargetInfo::DoubleWidth, clang::TransferrableTargetInfo::FloatAlign, clang::TransferrableTargetInfo::FloatFormat, clang::TransferrableTargetInfo::FloatWidth, getCharWidth(), getMaxPointerWidth(), clang::TransferrableTargetInfo::HalfAlign, clang::TransferrableTargetInfo::HalfFormat, clang::TransferrableTargetInfo::HalfWidth, clang::TransferrableTargetInfo::Int64Type, clang::TransferrableTargetInfo::IntAlign, clang::TransferrableTargetInfo::IntMaxType, clang::TransferrableTargetInfo::IntPtrType, clang::TransferrableTargetInfo::IntWidth, clang::TransferrableTargetInfo::LongAlign, clang::TransferrableTargetInfo::LongDoubleAlign, clang::TransferrableTargetInfo::LongDoubleFormat, clang::TransferrableTargetInfo::LongDoubleWidth, clang::TransferrableTargetInfo::LongLongAlign, clang::TransferrableTargetInfo::LongLongWidth, clang::TransferrableTargetInfo::LongWidth, clang::TransferrableTargetInfo::NewAlign, clang::TransferrableTargetInfo::PaddingOnUnsignedFixedPoint, clang::TransferrableTargetInfo::PtrDiffType, clang::TransferrableTargetInfo::SignedChar, clang::TransferrableTargetInfo::SignedInt, clang::TransferrableTargetInfo::SignedLong, clang::TransferrableTargetInfo::SignedLongLong, clang::TransferrableTargetInfo::SignedShort, clang::TransferrableTargetInfo::SizeType, clang::TransferrableTargetInfo::UnsignedChar, clang::TransferrableTargetInfo::UnsignedInt, clang::TransferrableTargetInfo::UnsignedLong, clang::TransferrableTargetInfo::UnsignedShort, clang::TransferrableTargetInfo::UseBitFieldTypeAlignment, and clang::TransferrableTargetInfo::WCharType.

Referenced by clang::targets::PPCTargetInfo::adjust(), clang::targets::AMDGPUTargetInfo::adjust(), clang::CompilerInstance::createPreprocessor(), and clang::CompilerInstance::ExecuteAction().

◆ adjustTargetOptions()

virtual void clang::TargetInfo::adjustTargetOptions ( const CodeGenOptions CGOpts,
TargetOptions TargetOpts 
) const
inlinevirtual

Adjust target options based on codegen options.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1020 of file TargetInfo.h.

Referenced by clang::CompilerInstance::ExecuteAction().

◆ allowsLargerPreferedTypeAlignment()

virtual bool clang::TargetInfo::allowsLargerPreferedTypeAlignment ( ) const
inlinevirtual

Whether target allows to overalign ABI-specified preferred alignment.

Reimplemented in clang::targets::MCUX86_32TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::MSP430TargetInfo.

Definition at line 1290 of file TargetInfo.h.

◆ checkCallingConvention()

virtual CallingConvCheckResult clang::TargetInfo::checkCallingConvention ( CallingConv  CC) const
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::WindowsX86_64TargetInfo, clang::targets::X86_64TargetInfo, clang::targets::MCUX86_32TargetInfo, clang::targets::PPC64TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::X86TargetInfo, clang::targets::WindowsARMTargetInfo, clang::targets::ARMTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::WindowsARM64TargetInfo, clang::targets::SPIRTargetInfo, clang::targets::BPFTargetInfo, and clang::targets::AArch64TargetInfo.

Definition at line 1258 of file TargetInfo.h.

References clang::CC_C.

◆ checkCFProtectionBranchSupported()

bool TargetInfo::checkCFProtectionBranchSupported ( DiagnosticsEngine Diags) const
virtual

Check if the target supports CFProtection branch.

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 139 of file TargetInfo.cpp.

References clang::DiagnosticsEngine::Report().

Referenced by clang::CodeGen::CodeGenModule::Release().

◆ checkCFProtectionReturnSupported()

bool TargetInfo::checkCFProtectionReturnSupported ( DiagnosticsEngine Diags) const
virtual

Check if the target supports CFProtection branch.

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 145 of file TargetInfo.cpp.

References clang::DiagnosticsEngine::Report().

Referenced by clang::CodeGen::CodeGenModule::Release().

◆ convertConstraint()

virtual std::string clang::TargetInfo::convertConstraint ( const char *&  Constraint) const
inlinevirtual

◆ copyAuxTarget()

void TargetInfo::copyAuxTarget ( const TargetInfo Aux)
protected

Copy type and layout related info.

Definition at line 800 of file TargetInfo.cpp.

References clang::Target.

Referenced by clang::targets::AMDGPUTargetInfo::setAuxTarget().

◆ CPUSpecificManglingCharacter()

virtual char clang::TargetInfo::CPUSpecificManglingCharacter ( StringRef  Name) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1133 of file TargetInfo.h.

Referenced by getCPUSpecificMangling().

◆ CreateTargetInfo()

TargetInfo * TargetInfo::CreateTargetInfo ( DiagnosticsEngine Diags,
const std::shared_ptr< TargetOptions > &  Opts 
)
static

Construct a target for the given options.

CreateTargetInfo - Return the target info object for the specified target options.

Parameters
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.

Definition at line 615 of file Targets.cpp.

References clang::targets::AllocateTarget(), clang::DiagnosticsEngine::Report(), and clang::Target.

Referenced by clang::PrecompiledPreamble::Build(), checkAndSanitizeDiags(), clang::ASTUnit::CodeComplete(), clang::createChainedIncludesSource(), clang::CompilerInstance::ExecuteAction(), and clang::ASTUnit::LoadFromCompilerInvocationAction().

◆ doUnsignedFixedPointTypesHavePadding()

bool clang::TargetInfo::doUnsignedFixedPointTypesHavePadding ( ) const
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 329 of file TargetInfo.h.

Referenced by clang::ASTContext::getFixedPointSemantics().

◆ fillValidCPUList()

virtual void clang::TargetInfo::fillValidCPUList ( SmallVectorImpl< StringRef > &  Values) const
inlinevirtual

◆ getABI()

virtual StringRef clang::TargetInfo::getABI ( ) const
inlinevirtual

◆ getAccumAlign()

unsigned clang::TargetInfo::getAccumAlign ( ) const
inline

Definition at line 414 of file TargetInfo.h.

◆ getAccumIBits()

unsigned clang::TargetInfo::getAccumIBits ( ) const
inline

Definition at line 446 of file TargetInfo.h.

◆ getAccumScale()

unsigned clang::TargetInfo::getAccumScale ( ) const
inline

getAccumScale/IBits - Return the number of fractional/integral bits in a 'signed _Accum' type.

Definition at line 445 of file TargetInfo.h.

◆ getAccumWidth()

unsigned clang::TargetInfo::getAccumWidth ( ) const
inline

getAccumWidth/Align - Return the size of 'signed _Accum' and 'unsigned _Accum' for this target, in bits.

Definition at line 413 of file TargetInfo.h.

◆ getAddressSpaceMap()

const LangASMap& clang::TargetInfo::getAddressSpaceMap ( ) const
inline

Definition at line 1200 of file TargetInfo.h.

Referenced by getAddressSpaceMap().

◆ getBoolAlign()

unsigned clang::TargetInfo::getBoolAlign ( ) const
inline

Return the alignment of '_Bool' and C++ 'bool' for this target.

Definition at line 378 of file TargetInfo.h.

◆ getBoolWidth()

unsigned clang::TargetInfo::getBoolWidth ( ) const
inline

Return the size of '_Bool' and C++ 'bool' for this target, in bits.

Definition at line 375 of file TargetInfo.h.

◆ getBuiltinVaListKind()

virtual BuiltinVaListKind clang::TargetInfo::getBuiltinVaListKind ( ) const
pure virtual

◆ getCallingConvKind()

TargetInfo::CallingConvKind TargetInfo::getCallingConvKind ( bool  ClangABICompat4) const
virtual

◆ getChar16Align()

unsigned clang::TargetInfo::getChar16Align ( ) const
inline

Definition at line 562 of file TargetInfo.h.

◆ getChar16Type()

IntType clang::TargetInfo::getChar16Type ( ) const
inline

Definition at line 299 of file TargetInfo.h.

◆ getChar16Width()

unsigned clang::TargetInfo::getChar16Width ( ) const
inline

getChar16Width/Align - Return the size of 'char16_t' for this target, in bits.

Definition at line 561 of file TargetInfo.h.

Referenced by EvaluateValue(), getCharWidth(), and clang::FloatingLiteral::getValueAsApproximateDouble().

◆ getChar32Align()

unsigned clang::TargetInfo::getChar32Align ( ) const
inline

Definition at line 567 of file TargetInfo.h.

◆ getChar32Type()

IntType clang::TargetInfo::getChar32Type ( ) const
inline

Definition at line 300 of file TargetInfo.h.

◆ getChar32Width()

unsigned clang::TargetInfo::getChar32Width ( ) const
inline

getChar32Width/Align - Return the size of 'char32_t' for this target, in bits.

Definition at line 566 of file TargetInfo.h.

Referenced by EvaluateValue(), getCharWidth(), and clang::FloatingLiteral::getValueAsApproximateDouble().

◆ getCharAlign()

unsigned clang::TargetInfo::getCharAlign ( ) const
inline

◆ getCharWidth()

unsigned clang::TargetInfo::getCharWidth ( ) const
inline

◆ getClobbers()

virtual const char* clang::TargetInfo::getClobbers ( ) const
pure virtual

◆ getConstantAddressSpace()

virtual llvm::Optional<LangAS> clang::TargetInfo::getConstantAddressSpace ( ) const
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 None, and such optimizations will be disabled.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1218 of file TargetInfo.h.

Referenced by castStringLiteralToDefaultAddressSpace(), and requiresAMDGPUProtectedVisibility().

◆ getConstraintRegister()

virtual StringRef clang::TargetInfo::getConstraintRegister ( StringRef  Constraint,
StringRef  Expression 
) const
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::X86TargetInfo, clang::targets::ARMTargetInfo, and clang::targets::AArch64TargetInfo.

Definition at line 799 of file TargetInfo.h.

Referenced by getClobberConflictLocation().

◆ getCorrespondingUnsignedType()

static IntType clang::TargetInfo::getCorrespondingUnsignedType ( IntType  T)
inlinestatic

Definition at line 308 of file TargetInfo.h.

◆ getCPUSpecificCPUDispatchFeatures()

virtual void clang::TargetInfo::getCPUSpecificCPUDispatchFeatures ( StringRef  Name,
llvm::SmallVectorImpl< StringRef > &  Features 
) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1141 of file TargetInfo.h.

◆ getCUDABuiltinAddressSpace()

virtual LangAS clang::TargetInfo::getCUDABuiltinAddressSpace ( unsigned  AS) const
inlinevirtual

Map from the address space field in builtin description strings to the language address space.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1210 of file TargetInfo.h.

References clang::getLangASFromTargetAS().

Referenced by clang::ASTContext::getLangASForBuiltinAddressSpace().

◆ getCXXABI()

TargetCXXABI clang::TargetInfo::getCXXABI ( ) const
inline

◆ getDataLayout()

const llvm::DataLayout& clang::TargetInfo::getDataLayout ( ) const
inline

◆ getDefaultAlignForAttributeAligned()

unsigned clang::TargetInfo::getDefaultAlignForAttributeAligned ( ) const
inline

Return the default alignment for attribute((aligned)) on this target, to be used if no alignment value is specified.

Definition at line 539 of file TargetInfo.h.

Referenced by clang::ASTContext::getTargetDefaultAlignForAttributeAligned().

◆ getDefaultCallingConv()

virtual CallingConv clang::TargetInfo::getDefaultCallingConv ( CallingConvMethodType  MT) const
inlinevirtual

Gets the default calling convention for the given target and declaration context.

Reimplemented in clang::targets::X86_64TargetInfo, clang::targets::X86TargetInfo, and clang::targets::SPIRTargetInfo.

Definition at line 1241 of file TargetInfo.h.

References clang::CC_C.

◆ getDoubleAlign()

unsigned clang::TargetInfo::getDoubleAlign ( ) const
inline

Definition at line 581 of file TargetInfo.h.

◆ getDoubleFormat()

const llvm::fltSemantics& clang::TargetInfo::getDoubleFormat ( ) const
inline

Definition at line 582 of file TargetInfo.h.

◆ getDoubleWidth()

unsigned clang::TargetInfo::getDoubleWidth ( ) const
inline

getDoubleWidth/Align/Format - Return the size/align/format of 'double'.

Definition at line 580 of file TargetInfo.h.

Referenced by getRealTypeByWidth().

◆ getDWARFAddressSpace()

virtual Optional<unsigned> clang::TargetInfo::getDWARFAddressSpace ( unsigned  AddressSpace) const
inlinevirtual
Returns
If a target requires an address within a target specific address space AddressSpace to be converted in order to be used, then return the corresponding target specific DWARF address space.
Otherwise return None and no conversion will be emitted in the DWARF.

Reimplemented in clang::targets::AMDGPUTargetInfo, and clang::targets::NVPTXTargetInfo.

Definition at line 1337 of file TargetInfo.h.

◆ getEHDataRegisterNumber()

virtual int clang::TargetInfo::getEHDataRegisterNumber ( unsigned  RegNo) const
inlinevirtual

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::X86_64TargetInfo, clang::targets::MipsTargetInfo, clang::targets::X86_32TargetInfo, clang::targets::PPCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::AArch64TargetInfo, clang::targets::XCoreTargetInfo, and clang::targets::SparcTargetInfo.

Definition at line 1191 of file TargetInfo.h.

◆ getFloat128Align()

unsigned clang::TargetInfo::getFloat128Align ( ) const
inline

Definition at line 595 of file TargetInfo.h.

◆ getFloat128Format()

const llvm::fltSemantics& clang::TargetInfo::getFloat128Format ( ) const
inline

Definition at line 596 of file TargetInfo.h.

Referenced by createBinOpInfoFromIncDec().

◆ getFloat128Width()

unsigned clang::TargetInfo::getFloat128Width ( ) const
inline

getFloat128Width/Align/Format - Return the size/align/format of '__float128'.

Definition at line 594 of file TargetInfo.h.

◆ getFloatAlign()

unsigned clang::TargetInfo::getFloatAlign ( ) const
inline

Definition at line 576 of file TargetInfo.h.

◆ getFloatEvalMethod()

virtual unsigned clang::TargetInfo::getFloatEvalMethod ( ) const
inlinevirtual

◆ getFloatFormat()

const llvm::fltSemantics& clang::TargetInfo::getFloatFormat ( ) const
inline

Definition at line 577 of file TargetInfo.h.

◆ getFloatWidth()

unsigned clang::TargetInfo::getFloatWidth ( ) const
inline

getFloatWidth/Align/Format - Return the size/align/format of 'float'.

Definition at line 575 of file TargetInfo.h.

Referenced by getRealTypeByWidth().

◆ getFractAlign()

unsigned clang::TargetInfo::getFractAlign ( ) const
inline

Definition at line 429 of file TargetInfo.h.

◆ getFractScale()

unsigned clang::TargetInfo::getFractScale ( ) const
inline

getFractScale - Return the number of fractional bits in a 'signed _Fract' type.

Definition at line 493 of file TargetInfo.h.

◆ getFractWidth()

unsigned clang::TargetInfo::getFractWidth ( ) const
inline

getFractWidth/Align - Return the size of 'signed _Fract' and 'unsigned _Fract' for this target, in bits.

Definition at line 428 of file TargetInfo.h.

◆ getGCCAddlRegNames()

virtual ArrayRef<AddlRegName> clang::TargetInfo::getGCCAddlRegNames ( ) const
inlineprotectedvirtual

◆ getGCCRegAliases()

virtual ArrayRef<GCCRegAlias> clang::TargetInfo::getGCCRegAliases ( ) const
protectedpure virtual

◆ getGCCRegNames()

virtual ArrayRef<const char *> clang::TargetInfo::getGCCRegNames ( ) const
protectedpure virtual

◆ getHalfAlign()

unsigned clang::TargetInfo::getHalfAlign ( ) const
inline

Definition at line 571 of file TargetInfo.h.

◆ getHalfFormat()

const llvm::fltSemantics& clang::TargetInfo::getHalfFormat ( ) const
inline

Definition at line 572 of file TargetInfo.h.

Referenced by createBinOpInfoFromIncDec().

◆ getHalfWidth()

unsigned clang::TargetInfo::getHalfWidth ( ) const
inline

getHalfWidth/Align/Format - Return the size/align/format of 'half'.

Definition at line 570 of file TargetInfo.h.

◆ getInt64Type()

IntType clang::TargetInfo::getInt64Type ( ) const
inline

Definition at line 301 of file TargetInfo.h.

◆ getIntAlign()

unsigned clang::TargetInfo::getIntAlign ( ) const
inline

Definition at line 394 of file TargetInfo.h.

Referenced by getMSMemberPointerSlots(), and getTypeAlign().

◆ getIntMaxTWidth()

unsigned clang::TargetInfo::getIntMaxTWidth ( ) const
inline

Return the size of intmax_t and uintmax_t for this target, in bits.

Definition at line 639 of file TargetInfo.h.

◆ getIntMaxType()

IntType clang::TargetInfo::getIntMaxType ( ) const
inline

Definition at line 283 of file TargetInfo.h.

◆ getIntPtrType()

IntType clang::TargetInfo::getIntPtrType ( ) const
inline

Definition at line 293 of file TargetInfo.h.

◆ getIntTypeByWidth()

TargetInfo::IntType TargetInfo::getIntTypeByWidth ( unsigned  BitWidth,
bool  IsSigned 
) const
virtual

◆ getIntWidth()

unsigned clang::TargetInfo::getIntWidth ( ) const
inline

getIntWidth/Align - Return the size of 'signed int' and 'unsigned int' for this target, in bits.

Definition at line 393 of file TargetInfo.h.

Referenced by clang::Sema::ActOnCXXNew(), clang::CharLiteralParser::CharLiteralParser(), EvaluateValue(), getIntTypeByWidth(), getLeastIntTypeByWidth(), getMSMemberPointerSlots(), getTypeConstantSuffix(), and getTypeWidth().

◆ getLargeArrayAlign()

unsigned clang::TargetInfo::getLargeArrayAlign ( ) const
inline

Definition at line 610 of file TargetInfo.h.

◆ getLargeArrayMinWidth()

unsigned clang::TargetInfo::getLargeArrayMinWidth ( ) const
inline

Definition at line 609 of file TargetInfo.h.

◆ getLeastIntTypeByWidth()

TargetInfo::IntType TargetInfo::getLeastIntTypeByWidth ( unsigned  BitWidth,
bool  IsSigned 
) const
virtual

◆ getLongAccumAlign()

unsigned clang::TargetInfo::getLongAccumAlign ( ) const
inline

Definition at line 419 of file TargetInfo.h.

◆ getLongAccumIBits()

unsigned clang::TargetInfo::getLongAccumIBits ( ) const
inline

Definition at line 451 of file TargetInfo.h.

◆ getLongAccumScale()

unsigned clang::TargetInfo::getLongAccumScale ( ) const
inline

getLongAccumScale/IBits - Return the number of fractional/integral bits in a 'signed long _Accum' type.

Definition at line 450 of file TargetInfo.h.

◆ getLongAccumWidth()

unsigned clang::TargetInfo::getLongAccumWidth ( ) const
inline

getLongAccumWidth/Align - Return the size of 'signed long _Accum' and 'unsigned long _Accum' for this target, in bits.

Definition at line 418 of file TargetInfo.h.

◆ getLongAlign()

unsigned clang::TargetInfo::getLongAlign ( ) const
inline

Definition at line 399 of file TargetInfo.h.

Referenced by getTypeAlign().

◆ getLongDoubleAlign()

unsigned clang::TargetInfo::getLongDoubleAlign ( ) const
inline

Definition at line 587 of file TargetInfo.h.

◆ getLongDoubleFormat()

const llvm::fltSemantics& clang::TargetInfo::getLongDoubleFormat ( ) const
inline

◆ getLongDoubleWidth()

unsigned clang::TargetInfo::getLongDoubleWidth ( ) const
inline

getLongDoubleWidth/Align/Format - Return the size/align/format of 'long double'.

Definition at line 586 of file TargetInfo.h.

◆ getLongFractAlign()

unsigned clang::TargetInfo::getLongFractAlign ( ) const
inline

Definition at line 434 of file TargetInfo.h.

◆ getLongFractScale()

unsigned clang::TargetInfo::getLongFractScale ( ) const
inline

getLongFractScale - Return the number of fractional bits in a 'signed long _Fract' type.

Definition at line 497 of file TargetInfo.h.

◆ getLongFractWidth()

unsigned clang::TargetInfo::getLongFractWidth ( ) const
inline

getLongFractWidth/Align - Return the size of 'signed long _Fract' and 'unsigned long _Fract' for this target, in bits.

Definition at line 433 of file TargetInfo.h.

◆ getLongLongAlign()

unsigned clang::TargetInfo::getLongLongAlign ( ) const
inline

Definition at line 404 of file TargetInfo.h.

Referenced by getTypeAlign().

◆ getLongLongWidth()

unsigned clang::TargetInfo::getLongLongWidth ( ) const
inline

getLongLongWidth/Align - Return the size of 'signed long long' and 'unsigned long long' for this target, in bits.

Definition at line 403 of file TargetInfo.h.

Referenced by getIntTypeByWidth(), getLeastIntTypeByWidth(), and getTypeWidth().

◆ getLongWidth()

unsigned clang::TargetInfo::getLongWidth ( ) const
inline

getLongWidth/Align - Return the size of 'signed long' and 'unsigned long' for this target, in bits.

Definition at line 398 of file TargetInfo.h.

Referenced by ComputeVMIClassTypeInfoFlags(), getIntTypeByWidth(), getLeastIntTypeByWidth(), getObjCEncodingForPrimitiveKind(), and getTypeWidth().

◆ getMaxAtomicInlineWidth()

unsigned clang::TargetInfo::getMaxAtomicInlineWidth ( ) const
inline

Return the maximum width lock-free atomic operation which can be inlined given the supported features of the given target.

Definition at line 617 of file TargetInfo.h.

Referenced by clang::ASTContext::AtomicUsesUnsupportedLibcall().

◆ getMaxAtomicPromoteWidth()

unsigned clang::TargetInfo::getMaxAtomicPromoteWidth ( ) const
inline

Return the maximum width lock-free atomic operation which will ever be supported for the given target.

Definition at line 614 of file TargetInfo.h.

◆ getMaxPointerWidth()

virtual uint64_t clang::TargetInfo::getMaxPointerWidth ( ) const
inlinevirtual

Return the maximum width of pointers on this target.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 366 of file TargetInfo.h.

Referenced by adjust().

◆ getMaxTLSAlign()

unsigned short clang::TargetInfo::getMaxTLSAlign ( ) const
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 1162 of file TargetInfo.h.

◆ getMaxVectorAlign()

unsigned clang::TargetInfo::getMaxVectorAlign ( ) const
inline

Return the maximum vector alignment supported for the given target.

Definition at line 632 of file TargetInfo.h.

◆ getMCountName()

const char* clang::TargetInfo::getMCountName ( ) const
inline

Returns the name of the mcount instrumentation function.

Definition at line 655 of file TargetInfo.h.

◆ getMinGlobalAlign()

unsigned clang::TargetInfo::getMinGlobalAlign ( ) const
inline

getMinGlobalAlign - Return the minimum alignment of a global variable, unless its alignment is explicitly reduced via attributes.

Definition at line 545 of file TargetInfo.h.

Referenced by clang::ASTContext::getDeclAlign().

◆ getNewAlign()

unsigned clang::TargetInfo::getNewAlign ( ) const
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 550 of file TargetInfo.h.

References max().

Referenced by hasNewExtendedAlignment().

◆ getNormalizedGCCRegisterName()

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 485 of file TargetInfo.cpp.

References getGCCAddlRegNames(), getGCCRegAliases(), getGCCRegNames(), clang::isDigit(), isValidGCCRegisterName(), and removeGCCRegisterPrefix().

Referenced by AddVariableConstraints(), extractRegisterName(), and getClobberConflictLocation().

◆ getNullPointerValue()

virtual uint64_t clang::TargetInfo::getNullPointerValue ( LangAS  AddrSpace) const
inlinevirtual

Get integer value for null pointer.

Parameters
AddrSpaceaddress space of pointee in source language.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 372 of file TargetInfo.h.

Referenced by clang::ASTContext::getTargetNullPointerValue().

◆ getOpenCLBuiltinAddressSpace()

virtual LangAS clang::TargetInfo::getOpenCLBuiltinAddressSpace ( unsigned  AS) const
inlinevirtual

Map from the address space field in builtin description strings to the language address space.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1204 of file TargetInfo.h.

References clang::getLangASFromTargetAS().

Referenced by clang::ASTContext::getLangASForBuiltinAddressSpace().

◆ getOpenCLTypeAddrSpace()

LangAS TargetInfo::getOpenCLTypeAddrSpace ( OpenCLTypeKind  TK) const
virtual

◆ getPlatformMinVersion()

VersionTuple clang::TargetInfo::getPlatformMinVersion ( ) const
inline

Retrieve the minimum desired version of the platform, to which the program should be compiled.

Definition at line 1228 of file TargetInfo.h.

Referenced by checkObjCMethodX86VectorTypes().

◆ getPlatformName()

StringRef clang::TargetInfo::getPlatformName ( ) const
inline

Retrieve the name of the platform as it is used in the availability attribute.

Definition at line 1224 of file TargetInfo.h.

Referenced by isPlatformEnvironment().

◆ getPointerAlign()

uint64_t clang::TargetInfo::getPointerAlign ( unsigned  AddrSpace) const
inline

◆ getPointerAlignV()

virtual uint64_t clang::TargetInfo::getPointerAlignV ( unsigned  AddrSpace) const
inlineprotectedvirtual

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1360 of file TargetInfo.h.

◆ getPointerWidth()

uint64_t clang::TargetInfo::getPointerWidth ( unsigned  AddrSpace) const
inline

◆ getPointerWidthV()

virtual uint64_t clang::TargetInfo::getPointerWidthV ( unsigned  AddrSpace) const
inlineprotectedvirtual

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1357 of file TargetInfo.h.

◆ getProcessIDType()

IntType clang::TargetInfo::getProcessIDType ( ) const
inline

Definition at line 306 of file TargetInfo.h.

◆ getPtrDiffType()

IntType clang::TargetInfo::getPtrDiffType ( unsigned  AddrSpace) const
inline

Definition at line 287 of file TargetInfo.h.

◆ getPtrDiffTypeV()

virtual enum IntType clang::TargetInfo::getPtrDiffTypeV ( unsigned  AddrSpace) const
inlineprotectedvirtual

Definition at line 1363 of file TargetInfo.h.

◆ getRealTypeByWidth()

TargetInfo::RealType TargetInfo::getRealTypeByWidth ( unsigned  BitWidth) const

◆ getRegisterWidth()

virtual unsigned clang::TargetInfo::getRegisterWidth ( ) const
inlinevirtual

Return the "preferred" register width on this target.

Reimplemented in clang::targets::X86_64TargetInfo.

Definition at line 647 of file TargetInfo.h.

◆ getRegParmMax()

unsigned clang::TargetInfo::getRegParmMax ( ) const
inline

Definition at line 1148 of file TargetInfo.h.

◆ getSDKVersion()

const llvm::VersionTuple& clang::TargetInfo::getSDKVersion ( ) const
inline
Returns
The version of the SDK which was used during the compilation if one was specified, or an empty version otherwise.

Definition at line 1343 of file TargetInfo.h.

Referenced by clang::Sema::getCudaConfigureFuncName().

◆ getShortAccumAlign()

unsigned clang::TargetInfo::getShortAccumAlign ( ) const
inline

Definition at line 409 of file TargetInfo.h.

◆ getShortAccumIBits()

unsigned clang::TargetInfo::getShortAccumIBits ( ) const
inline

Definition at line 439 of file TargetInfo.h.

◆ getShortAccumScale()

unsigned clang::TargetInfo::getShortAccumScale ( ) const
inline

getShortAccumScale/IBits - Return the number of fractional/integral bits in a 'signed short _Accum' type.

Definition at line 438 of file TargetInfo.h.

◆ getShortAccumWidth()

unsigned clang::TargetInfo::getShortAccumWidth ( ) const
inline

getShortAccumWidth/Align - Return the size of 'signed short _Accum' and 'unsigned short _Accum' for this target, in bits.

Definition at line 408 of file TargetInfo.h.

◆ getShortAlign()

unsigned clang::TargetInfo::getShortAlign ( ) const
inline

Return the alignment of 'signed short' and 'unsigned short' for this target.

Definition at line 389 of file TargetInfo.h.

Referenced by getTypeAlign().

◆ getShortFractAlign()

unsigned clang::TargetInfo::getShortFractAlign ( ) const
inline

Definition at line 424 of file TargetInfo.h.

◆ getShortFractScale()

unsigned clang::TargetInfo::getShortFractScale ( ) const
inline

getShortFractScale - Return the number of fractional bits in a 'signed short _Fract' type.

Definition at line 489 of file TargetInfo.h.

◆ getShortFractWidth()

unsigned clang::TargetInfo::getShortFractWidth ( ) const
inline

getShortFractWidth/Align - Return the size of 'signed short _Fract' and 'unsigned short _Fract' for this target, in bits.

Definition at line 423 of file TargetInfo.h.

◆ getShortWidth()

unsigned clang::TargetInfo::getShortWidth ( ) const
inline

Return the size of 'signed short' and 'unsigned short' for this target, in bits.

Definition at line 385 of file TargetInfo.h.

Referenced by getIntTypeByWidth(), getLeastIntTypeByWidth(), getTypeConstantSuffix(), and getTypeWidth().

◆ getSigAtomicType()

IntType clang::TargetInfo::getSigAtomicType ( ) const
inline

Definition at line 305 of file TargetInfo.h.

◆ getSignedSizeType()

IntType clang::TargetInfo::getSignedSizeType ( ) const
inline

Definition at line 269 of file TargetInfo.h.

◆ getSimdDefaultAlign()

unsigned clang::TargetInfo::getSimdDefaultAlign ( ) const
inline

Return default simd alignment for the given target.

Generally, this value is type-specific, but this alignment can be used for most of the types for the given target.

Definition at line 636 of file TargetInfo.h.

Referenced by clang::ASTContext::getOpenMPDefaultSimdAlign().

◆ getSizeType()

IntType clang::TargetInfo::getSizeType ( ) const
inline

Definition at line 268 of file TargetInfo.h.

◆ getStaticInitSectionSpecifier()

virtual const char* clang::TargetInfo::getStaticInitSectionSpecifier ( ) const
inlinevirtual

◆ getSuitableAlign()

unsigned clang::TargetInfo::getSuitableAlign ( ) const
inline

Return the alignment that is suitable for storing any object with a fundamental alignment requirement.

Definition at line 535 of file TargetInfo.h.

◆ getSupportedOpenCLOpts() [1/2]

OpenCLOptions& clang::TargetInfo::getSupportedOpenCLOpts ( )
inline

Get supported OpenCL extensions and optional core features.

Definition at line 1303 of file TargetInfo.h.

Referenced by clang::Sema::Initialize().

◆ getSupportedOpenCLOpts() [2/2]

const OpenCLOptions& clang::TargetInfo::getSupportedOpenCLOpts ( ) const
inline

Get const supported OpenCL extensions and optional core features.

Definition at line 1308 of file TargetInfo.h.

◆ getTargetBuiltins()

virtual ArrayRef<Builtin::Info> clang::TargetInfo::getTargetBuiltins ( ) const
pure virtual

◆ getTargetDefines()

virtual void clang::TargetInfo::getTargetDefines ( const LangOptions Opts,
MacroBuilder Builder 
) const
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::CygwinX86_64TargetInfo, clang::targets::MicrosoftX86_64TargetInfo, clang::targets::RTEMSX86_32TargetInfo, clang::targets::MCUX86_32TargetInfo, clang::targets::HaikuX86_32TargetInfo, clang::targets::CygwinX86_32TargetInfo, clang::targets::MinGWX86_32TargetInfo, clang::targets::MicrosoftX86_32TargetInfo, clang::targets::RenderScript32TargetInfo, clang::targets::X86TargetInfo, clang::targets::CygwinARMTargetInfo, clang::targets::MinGWARMTargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::MicrosoftARMleTargetInfo, clang::targets::SparcV9TargetInfo, clang::targets::ItaniumWindowsARMleTargetInfo, clang::targets::MipsTargetInfo, clang::targets::ARMbeTargetInfo, clang::targets::SparcV8TargetInfo, clang::targets::ARMleTargetInfo, clang::targets::RenderScript64TargetInfo, clang::targets::PPCTargetInfo, clang::targets::WebAssembly64TargetInfo, clang::targets::AArch64beTargetInfo, clang::targets::ARMTargetInfo, clang::targets::MicrosoftARM64TargetInfo, clang::targets::SPIR64TargetInfo, clang::targets::WebAssembly32TargetInfo, clang::targets::TCELETargetInfo, clang::targets::SPIR32TargetInfo, clang::targets::AArch64leTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::TCETargetInfo, clang::targets::LanaiTargetInfo, clang::targets::AArch64TargetInfo, clang::targets::AVRTargetInfo, clang::targets::WebAssemblyTargetInfo, clang::targets::NVPTXTargetInfo, clang::targets::SPIRTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::MSP430TargetInfo, clang::targets::RISCVTargetInfo, clang::targets::SparcTargetInfo, clang::targets::PNaClTargetInfo, clang::targets::BPFTargetInfo, clang::targets::XCoreTargetInfo, clang::targets::ARCTargetInfo, clang::targets::Le64TargetInfo, clang::targets::OSTargetInfo< PPC32TargetInfo >, clang::targets::OSTargetInfo< X86_64TargetInfo >, clang::targets::OSTargetInfo< PPC64TargetInfo >, clang::targets::OSTargetInfo< ARMleTargetInfo >, clang::targets::OSTargetInfo< AArch64leTargetInfo >, and clang::targets::OSTargetInfo< X86_32TargetInfo >.

◆ getTargetOpts()

TargetOptions& clang::TargetInfo::getTargetOpts ( ) const
inline

Retrieve the target options.

Definition at line 216 of file TargetInfo.h.

Referenced by getCudaArch(), and clang::CodeGen::CodeGenModule::SetCommonAttributes().

◆ getTriple()

const llvm::Triple& clang::TargetInfo::getTriple ( ) const
inline

Returns the target triple of the primary target.

Definition at line 966 of file TargetInfo.h.

Referenced by clang::targets::AArch64leTargetInfo::AArch64leTargetInfo(), clang::targets::AArch64TargetInfo::AArch64TargetInfo(), addLinkOptionsPostorder(), clang::targets::AMDGPUTargetInfo::adjust(), clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), clang::ASTContext::AtomicUsesUnsupportedLibcall(), buildGlobalBlock(), clang::arcmt::trans::canApplyWeak(), CheckBuiltinTargetSupport(), checkObjCMethodX86VectorTypes(), checkVAStartABI(), ComputeVMIClassTypeInfoFlags(), configureBlocksRuntimeObject(), clang::CodeGen::CreateItaniumCXXABI(), clang::Sema::diagnoseUnavailableAlignedAllocation(), EmitBitTestIntrinsic(), clang::CodeGen::CodeGenFunction::EmitBuiltinAvailable(), emitGlobalDtorWithCXAAtExit(), emitGlobalDtorWithTLRegDtor(), EmitMSVCRTSetJmp(), clang::CodeGen::CodeGenModule::EmitTopLevelDecl(), clang::CompilerInstance::ExecuteAction(), FindIvarInterface(), clang::CodeGen::EHPersonality::get(), clang::analyze_scanf::ScanfSpecifier::getArgType(), clang::targets::ARMTargetInfo::getBuiltinVaListKind(), getCallingConvKind(), getCallingConvMangling(), getCodegenToUse(), getCPersonality(), clang::cross_tu::CrossTranslationUnitContext::getCrossTUDefinition(), getCXXPersonality(), getMaxAtomicAccessSize(), getMSMemberPointerSlots(), clang::ASTContext::getNSIntegerType(), clang::ASTContext::getNSUIntegerType(), getObjCPersonality(), getObjCXXPersonality(), clang::CodeGen::CodeGenModule::getTargetCodeGenInfo(), getThreadLocalWrapperLinkage(), clang::CodeGen::CodeGenModule::getTriple(), getTypeInfoLinkage(), clang::targets::RISCVTargetInfo::hasFeature(), clang::analyze_format_string::FormatSpecifier::hasValidLengthModifier(), clang::targets::ARMTargetInfo::initFeatureMap(), clang::Sema::InstantiateClassMembers(), clang::CodeGen::ABIInfo::isAndroid(), isArc4RandomAvailable(), isArithmeticArgumentPromotion(), clang::FunctionDecl::isMSVCRTEntryPoint(), isPermittedNeonBaseType(), isPlatformEnvironment(), isTargetArch(), isTargetEnvironment(), isTargetOS(), isTargetVendor(), isThreadWrapperReplaceable(), isVarDeclStrongDefinition(), clang::CodeGen::CodeGenModule::maybeSetTrivialComdat(), ParseAlignPragma(), clang::analyze_format_string::ParseFormatStringHasSArg(), ParseScanfSpecifier(), ReferenceDllExportedMembers(), clang::CodeGen::CodeGenModule::Release(), roundUpSizeToCharAlignment(), supportsNilWithFloatRet(), takeDeclAttributes(), clang::targets::MipsTargetInfo::validateTarget(), Write__class_ro_t_initializer(), and WriteModernMetadataDeclarations().

◆ getTypeAlign()

unsigned TargetInfo::getTypeAlign ( IntType  T) const

◆ getTypeConstantSuffix()

const char * TargetInfo::getTypeConstantSuffix ( IntType  T) const

◆ getTypeFormatModifier()

const char * TargetInfo::getTypeFormatModifier ( IntType  T)
static

◆ getTypeName()

const char * TargetInfo::getTypeName ( IntType  T)
static

◆ getTypeWidth()

unsigned TargetInfo::getTypeWidth ( IntType  T) const

◆ getUInt64Type()

IntType clang::TargetInfo::getUInt64Type ( ) const
inline

Definition at line 302 of file TargetInfo.h.

◆ getUIntMaxType()

IntType clang::TargetInfo::getUIntMaxType ( ) const
inline

Definition at line 284 of file TargetInfo.h.

◆ getUIntPtrType()

IntType clang::TargetInfo::getUIntPtrType ( ) const
inline

Definition at line 294 of file TargetInfo.h.

◆ getUnsignedAccumIBits()

unsigned clang::TargetInfo::getUnsignedAccumIBits ( ) const
inline

Definition at line 471 of file TargetInfo.h.

◆ getUnsignedAccumScale()

unsigned clang::TargetInfo::getUnsignedAccumScale ( ) const
inline

getUnsignedAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned _Accum' type.

Definition at line 468 of file TargetInfo.h.

◆ getUnsignedFractScale()

unsigned clang::TargetInfo::getUnsignedFractScale ( ) const
inline

getUnsignedFractScale - Return the number of fractional bits in a 'unsigned _Fract' type.

Definition at line 508 of file TargetInfo.h.

◆ getUnsignedLongAccumIBits()

unsigned clang::TargetInfo::getUnsignedLongAccumIBits ( ) const
inline

Definition at line 481 of file TargetInfo.h.

◆ getUnsignedLongAccumScale()

unsigned clang::TargetInfo::getUnsignedLongAccumScale ( ) const
inline

getUnsignedLongAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned long _Accum' type.

Definition at line 478 of file TargetInfo.h.

◆ getUnsignedLongFractScale()

unsigned clang::TargetInfo::getUnsignedLongFractScale ( ) const
inline

getUnsignedLongFractScale - Return the number of fractional bits in a 'unsigned long _Fract' type.

Definition at line 514 of file TargetInfo.h.

◆ getUnsignedPtrDiffType()

IntType clang::TargetInfo::getUnsignedPtrDiffType ( unsigned  AddrSpace) const
inline

Definition at line 290 of file TargetInfo.h.

◆ getUnsignedShortAccumIBits()

unsigned clang::TargetInfo::getUnsignedShortAccumIBits ( ) const
inline

Definition at line 460 of file TargetInfo.h.

◆ getUnsignedShortAccumScale()

unsigned clang::TargetInfo::getUnsignedShortAccumScale ( ) const
inline

getUnsignedShortAccumScale/IBits - Return the number of fractional/integral bits in a 'unsigned short _Accum' type.

Definition at line 457 of file TargetInfo.h.

◆ getUnsignedShortFractScale()

unsigned clang::TargetInfo::getUnsignedShortFractScale ( ) const
inline

getUnsignedShortFractScale - Return the number of fractional bits in a 'unsigned short _Fract' type.

Definition at line 501 of file TargetInfo.h.

◆ getUnwindWordWidth()

virtual unsigned clang::TargetInfo::getUnwindWordWidth ( ) const
inlinevirtual

Reimplemented in clang::targets::X86_64TargetInfo, and clang::targets::MipsTargetInfo.

Definition at line 644 of file TargetInfo.h.

◆ getVtblPtrAddressSpace()

virtual unsigned clang::TargetInfo::getVtblPtrAddressSpace ( ) const
inlinevirtual
Returns
Target specific vtbl ptr address space.

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1327 of file TargetInfo.h.

◆ getWCharAlign()

unsigned clang::TargetInfo::getWCharAlign ( ) const
inline

Definition at line 557 of file TargetInfo.h.

◆ getWCharType()

IntType clang::TargetInfo::getWCharType ( ) const
inline

Definition at line 297 of file TargetInfo.h.

Referenced by EvaluateValue().

◆ getWCharWidth()

unsigned clang::TargetInfo::getWCharWidth ( ) const
inline

getWCharWidth/Align - Return the size of 'wchar_t' for this target, in bits.

Definition at line 556 of file TargetInfo.h.

Referenced by clang::CharLiteralParser::CharLiteralParser(), EvaluateValue(), getCharWidth(), and clang::FloatingLiteral::getValueAsApproximateDouble().

◆ getWIntType()

IntType clang::TargetInfo::getWIntType ( ) const
inline

Definition at line 298 of file TargetInfo.h.

◆ getZeroLengthBitfieldBoundary()

unsigned clang::TargetInfo::getZeroLengthBitfieldBoundary ( ) const
inline

Get the fixed alignment value in bits for a member that follows a zero length bitfield.

Definition at line 685 of file TargetInfo.h.

Referenced by roundUpSizeToCharAlignment().

◆ handleTargetFeatures()

virtual bool clang::TargetInfo::handleTargetFeatures ( std::vector< std::string > &  Features,
DiagnosticsEngine Diags 
)
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.

Returns
False on error.

Reimplemented in clang::targets::DarwinX86_64TargetInfo, clang::targets::DarwinI386TargetInfo, clang::targets::MipsTargetInfo, clang::targets::X86TargetInfo, clang::targets::PPCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::SystemZTargetInfo, clang::targets::HexagonTargetInfo, clang::targets::RISCVTargetInfo, clang::targets::AArch64TargetInfo, and clang::targets::SparcTargetInfo.

Definition at line 1092 of file TargetInfo.h.

◆ hasAlignMac68kSupport()

bool clang::TargetInfo::hasAlignMac68kSupport ( ) const
inline

Check whether this target support '#pragma options align=mac68k'.

Definition at line 696 of file TargetInfo.h.

References clang::driver::types::getTypeName().

Referenced by clang::Sema::ActOnPragmaOptionsAlign().

◆ hasBuiltinAtomic()

virtual bool clang::TargetInfo::hasBuiltinAtomic ( uint64_t  AtomicSizeInBits,
uint64_t  AlignmentInBits 
) const
inlinevirtual

Returns true if the given target supports lock-free atomic operations at the specified width and alignment.

Definition at line 623 of file TargetInfo.h.

References getCharWidth().

◆ hasBuiltinMSVaList()

bool clang::TargetInfo::hasBuiltinMSVaList ( ) const
inline

Returns whether or not type __builtin_ms_va_list type is available on this target.

Definition at line 768 of file TargetInfo.h.

Referenced by clang::Sema::Initialize().

◆ hasFeature()

virtual bool clang::TargetInfo::hasFeature ( StringRef  Feature) const
inlinevirtual

◆ hasFloat128Type()

virtual bool clang::TargetInfo::hasFloat128Type ( ) const
inlinevirtual

Determine whether the __float128 type is supported on this target.

Definition at line 528 of file TargetInfo.h.

Referenced by getRealTypeByWidth(), and clang::CodeGen::ABIInfo::isHomogeneousAggregate().

◆ hasFloat16Type()

virtual bool clang::TargetInfo::hasFloat16Type ( ) const
inlinevirtual

Determine whether the _Float16 type is supported on this target.

Definition at line 531 of file TargetInfo.h.

Referenced by clang::NumericLiteralParser::NumericLiteralParser().

◆ hasInt128Type()

virtual bool clang::TargetInfo::hasInt128Type ( ) const
inlinevirtual

◆ hasLegalHalfType()

virtual bool clang::TargetInfo::hasLegalHalfType ( ) const
inlinevirtual

Determine whether _Float16 is supported on this target.

Definition at line 525 of file TargetInfo.h.

◆ hasNoAsmVariants()

bool clang::TargetInfo::hasNoAsmVariants ( ) const
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 1183 of file TargetInfo.h.

Referenced by clang::GCCAsmStmt::AnalyzeAsmString().

◆ hasProtectedVisibility()

virtual bool clang::TargetInfo::hasProtectedVisibility ( ) const
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::DarwinTargetInfo< PPC32TargetInfo >, clang::targets::DarwinTargetInfo< X86_64TargetInfo >, clang::targets::DarwinTargetInfo< PPC64TargetInfo >, clang::targets::DarwinTargetInfo< ARMleTargetInfo >, clang::targets::DarwinTargetInfo< AArch64leTargetInfo >, clang::targets::DarwinTargetInfo< X86_32TargetInfo >, and clang::targets::Le64TargetInfo.

Definition at line 995 of file TargetInfo.h.

◆ hasSjLjLowering()

virtual bool clang::TargetInfo::hasSjLjLowering ( ) const
inlinevirtual

Controls if __builtin_longjmp / __builtin_setjmp can be lowered to llvm.eh.sjlj.longjmp / llvm.eh.sjlj.setjmp.

Reimplemented in clang::targets::X86TargetInfo, clang::targets::PPCTargetInfo, clang::targets::SparcV8TargetInfo, clang::targets::ARMTargetInfo, and clang::targets::SparcTargetInfo.

Definition at line 1277 of file TargetInfo.h.

◆ initFeatureMap()

bool TargetInfo::initFeatureMap ( llvm::StringMap< bool > &  Features,
DiagnosticsEngine Diags,
StringRef  CPU,
const std::vector< std::string > &  FeatureVec 
) const
virtual

◆ isBigEndian()

bool clang::TargetInfo::isBigEndian ( ) const
inline

Definition at line 1230 of file TargetInfo.h.

Referenced by EmitSignBit().

◆ isCLZForZeroUndef()

virtual bool clang::TargetInfo::isCLZForZeroUndef ( ) const
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::MipsTargetInfo, clang::targets::PPCTargetInfo, clang::targets::ARMTargetInfo, clang::targets::HexagonTargetInfo, and clang::targets::AArch64TargetInfo.

Definition at line 760 of file TargetInfo.h.

◆ isLittleEndian()

bool clang::TargetInfo::isLittleEndian ( ) const
inline

Definition at line 1231 of file TargetInfo.h.

◆ isNan2008()

virtual bool clang::TargetInfo::isNan2008 ( ) const
inlinevirtual

Returns true if NaN encoding is IEEE 754-2008.

Only MIPS allows a different encoding.

Reimplemented in clang::targets::MipsTargetInfo.

Definition at line 961 of file TargetInfo.h.

◆ isRenderScriptTarget()

bool clang::TargetInfo::isRenderScriptTarget ( ) const
inline

Returns true for RenderScript.

Definition at line 771 of file TargetInfo.h.

◆ isSEHTrySupported()

bool clang::TargetInfo::isSEHTrySupported ( ) const
inline

Whether the target supports SEH __try.

Definition at line 1170 of file TargetInfo.h.

◆ isTLSSupported()

bool clang::TargetInfo::isTLSSupported ( ) const
inline

◆ isTypeSigned()

bool TargetInfo::isTypeSigned ( IntType  T)
static

◆ isValidClobber()

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.

This is used by Sema.

Definition at line 432 of file TargetInfo.cpp.

References isValidGCCRegisterName().

◆ isValidCPUName()

virtual bool clang::TargetInfo::isValidCPUName ( StringRef  Name) const
inlinevirtual

◆ isValidFeatureName()

virtual bool clang::TargetInfo::isValidFeatureName ( StringRef  Feature) const
inlinevirtual

Determine whether this TargetInfo supports the given feature.

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1077 of file TargetInfo.h.

◆ isValidGCCRegisterName()

bool TargetInfo::isValidGCCRegisterName ( StringRef  Name) const
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 440 of file TargetInfo.cpp.

References getGCCAddlRegNames(), getGCCRegAliases(), getGCCRegNames(), clang::isDigit(), and removeGCCRegisterPrefix().

Referenced by AddVariableConstraints(), extractRegisterName(), getNormalizedGCCRegisterName(), and isValidClobber().

◆ isValidSectionSpecifier()

virtual std::string clang::TargetInfo::isValidSectionSpecifier ( StringRef  SR) const
inlinevirtual

An optional hook that targets can implement to perform semantic checking on attribute((section("foo"))) specifiers.

In this case, "foo" is passed in to be checked. If the section specifier is invalid, the backend should return a non-empty string that indicates the problem.

This hook is a simple quality of implementation feature to catch errors and give good diagnostics in cases when the assembler or code generator would otherwise reject the section specifier.

Reimplemented in clang::targets::DarwinTargetInfo< PPC32TargetInfo >, clang::targets::DarwinTargetInfo< X86_64TargetInfo >, clang::targets::DarwinTargetInfo< PPC64TargetInfo >, clang::targets::DarwinTargetInfo< ARMleTargetInfo >, clang::targets::DarwinTargetInfo< AArch64leTargetInfo >, and clang::targets::DarwinTargetInfo< X86_32TargetInfo >.

Definition at line 1008 of file TargetInfo.h.

◆ isVLASupported()

bool clang::TargetInfo::isVLASupported ( ) const
inline

Whether target supports variable-length arrays.

Definition at line 1167 of file TargetInfo.h.

◆ multiVersionSortPriority()

virtual unsigned clang::TargetInfo::multiVersionSortPriority ( StringRef  Name) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1118 of file TargetInfo.h.

Referenced by AppendTargetMangling(), and TargetMVPriority().

◆ noSignedCharForObjCBool()

void clang::TargetInfo::noSignedCharForObjCBool ( )
inline

Definition at line 667 of file TargetInfo.h.

Referenced by clang::CompilerInstance::ExecuteAction().

◆ resetDataLayout()

void clang::TargetInfo::resetDataLayout ( StringRef  DL)
inlineprotected

◆ resolveSymbolicName()

bool TargetInfo::resolveSymbolicName ( const char *&  Name,
ArrayRef< ConstraintInfo OutputConstraints,
unsigned &  Index 
) const

Definition at line 600 of file TargetInfo.cpp.

◆ setABI()

virtual bool clang::TargetInfo::setABI ( const std::string &  Name)
inlinevirtual

◆ setAuxTarget()

virtual void clang::TargetInfo::setAuxTarget ( const TargetInfo Aux)
inlinevirtual

Reimplemented in clang::targets::AMDGPUTargetInfo.

Definition at line 1352 of file TargetInfo.h.

Referenced by clang::CompilerInstance::ExecuteAction().

◆ setCPU()

virtual bool clang::TargetInfo::setCPU ( const std::string &  Name)
inlinevirtual

◆ setFeatureEnabled()

virtual void clang::TargetInfo::setFeatureEnabled ( llvm::StringMap< bool > &  Features,
StringRef  Name,
bool  Enabled 
) const
inlinevirtual

Enable or disable a specific target feature; the feature name must be valid.

Reimplemented in clang::targets::X86TargetInfo, clang::targets::PPCTargetInfo, and clang::targets::BPFTargetInfo.

Definition at line 1070 of file TargetInfo.h.

Referenced by initFeatureMap().

◆ setFPMath()

virtual bool clang::TargetInfo::setFPMath ( StringRef  Name)
inlinevirtual

Use the specified unit for FP math.

Returns
False on error (invalid unit name).

Reimplemented in clang::targets::X86TargetInfo, and clang::targets::ARMTargetInfo.

Definition at line 1064 of file TargetInfo.h.

◆ setMaxAtomicWidth()

virtual void clang::TargetInfo::setMaxAtomicWidth ( )
inlinevirtual

Set the maximum inline or promote width lock-free atomic operation for the given target.

Reimplemented in clang::targets::X86_64TargetInfo, and clang::targets::X86_32TargetInfo.

Definition at line 620 of file TargetInfo.h.

◆ setOpenCLExtensionOpts()

virtual void clang::TargetInfo::setOpenCLExtensionOpts ( )
inlinevirtual

Set supported OpenCL extensions as written on command line.

Definition at line 1296 of file TargetInfo.h.

◆ setSupportedOpenCLOpts()

virtual void clang::TargetInfo::setSupportedOpenCLOpts ( )
inlinevirtual

Set supported OpenCL extensions and optional core features.

Reimplemented in clang::targets::X86TargetInfo, clang::targets::AMDGPUTargetInfo, clang::targets::NVPTXTargetInfo, and clang::targets::SPIRTargetInfo.

Definition at line 1293 of file TargetInfo.h.

◆ supportsIFunc()

bool clang::TargetInfo::supportsIFunc ( ) const
inline

Identify whether this target supports IFuncs.

Definition at line 1110 of file TargetInfo.h.

Referenced by AppendCPUSpecificCPUDispatchMangling().

◆ supportsMultiVersioning()

bool clang::TargetInfo::supportsMultiVersioning ( ) const
inline

Identify whether this target supports multiversioning of functions, which requires support for cpu_supports and cpu_is functionality.

Definition at line 1104 of file TargetInfo.h.

◆ useAddressSpaceMapMangling()

bool clang::TargetInfo::useAddressSpaceMapMangling ( ) const
inline

Specify if mangling based on address space map should be used or not for language specific address spaces.

Definition at line 738 of file TargetInfo.h.

Referenced by isAddrSpaceMapManglingEnabled().

◆ useBitFieldTypeAlignment()

bool clang::TargetInfo::useBitFieldTypeAlignment ( ) const
inline

Check whether the alignment of bit-field types is respected when laying out structures.

Definition at line 673 of file TargetInfo.h.

Referenced by roundUpSizeToCharAlignment().

◆ useExplicitBitFieldAlignment()

bool clang::TargetInfo::useExplicitBitFieldAlignment ( ) const
inline

Check whether explicit bitfield alignment attributes should be.

Definition at line 691 of file TargetInfo.h.

Referenced by roundUpSizeToCharAlignment().

◆ useFloat128ManglingForLongDouble()

virtual bool clang::TargetInfo::useFloat128ManglingForLongDouble ( ) const
inlinevirtual

Return true if the 'long double' type should be mangled like __float128.

Reimplemented in clang::targets::AndroidX86_64TargetInfo, clang::targets::PPCTargetInfo, and clang::targets::SystemZTargetInfo.

Definition at line 602 of file TargetInfo.h.

◆ useFP16ConversionIntrinsics()

virtual bool clang::TargetInfo::useFP16ConversionIntrinsics ( ) const
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::X86TargetInfo, clang::targets::ARMTargetInfo, clang::targets::SPIRTargetInfo, and clang::targets::AArch64TargetInfo.

Definition at line 732 of file TargetInfo.h.

Referenced by clang::CodeGen::CodeGenTypes::ConvertType(), createBinOpInfoFromIncDec(), needsConversionOfHalfVec(), and clang::CodeGen::ConstantEmitter::tryEmitPrivate().

◆ useObjCFP2RetForComplexLongDouble()

bool clang::TargetInfo::useObjCFP2RetForComplexLongDouble ( ) const
inline

Check whether _Complex long double should use the "fp2ret" flavor of Objective-C message passing on this target.

Definition at line 724 of file TargetInfo.h.

Referenced by clang::CodeGen::CodeGenModule::ReturnTypeUsesFP2Ret().

◆ useObjCFPRetForRealType()

bool clang::TargetInfo::useObjCFPRetForRealType ( RealType  T) const
inline

Check whether the given real type should use the "fpret" flavor of Objective-C message passing on this target.

Definition at line 718 of file TargetInfo.h.

Referenced by clang::CodeGen::CodeGenModule::ReturnTypeUsesFPRet().

◆ useSignedCharForObjCBool()

bool clang::TargetInfo::useSignedCharForObjCBool ( ) const
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 664 of file TargetInfo.h.

◆ useZeroLengthBitfieldAlignment()

bool clang::TargetInfo::useZeroLengthBitfieldAlignment ( ) const
inline

Check whether zero length bitfields should force alignment of the next member.

Definition at line 679 of file TargetInfo.h.

Referenced by roundUpSizeToCharAlignment().

◆ validateAsmConstraint()

virtual bool clang::TargetInfo::validateAsmConstraint ( const char *&  Name,
TargetInfo::ConstraintInfo info 
) const
pure virtual

◆ validateConstraintModifier()

virtual bool clang::TargetInfo::validateConstraintModifier ( StringRef  ,
char  ,
unsigned  ,
std::string &   
) const
inlinevirtual

Reimplemented in clang::targets::ARMTargetInfo, and clang::targets::AArch64TargetInfo.

Definition at line 932 of file TargetInfo.h.

◆ validateCpuIs()

virtual bool clang::TargetInfo::validateCpuIs ( StringRef  Name) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1124 of file TargetInfo.h.

Referenced by SemaBuiltinCpuIs().

◆ validateCPUSpecificCPUDispatch()

virtual bool clang::TargetInfo::validateCPUSpecificCPUDispatch ( StringRef  Name) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1128 of file TargetInfo.h.

◆ validateCpuSupports()

virtual bool clang::TargetInfo::validateCpuSupports ( StringRef  Name) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 1114 of file TargetInfo.h.

Referenced by SemaBuiltinCpuSupports().

◆ validateGlobalRegisterVariable()

virtual bool clang::TargetInfo::validateGlobalRegisterVariable ( StringRef  RegName,
unsigned  RegSize,
bool HasSizeMismatch 
) const
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::X86_64TargetInfo, and clang::targets::X86TargetInfo.

Definition at line 908 of file TargetInfo.h.

◆ validateInputConstraint()

bool TargetInfo::validateInputConstraint ( MutableArrayRef< ConstraintInfo OutputConstraints,
ConstraintInfo info 
) const

◆ validateInputSize()

virtual bool clang::TargetInfo::validateInputSize ( StringRef  ,
unsigned   
) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 927 of file TargetInfo.h.

◆ validateOutputConstraint()

bool TargetInfo::validateOutputConstraint ( ConstraintInfo Info) const

◆ validateOutputSize()

virtual bool clang::TargetInfo::validateOutputSize ( StringRef  ,
unsigned   
) const
inlinevirtual

Reimplemented in clang::targets::X86TargetInfo.

Definition at line 922 of file TargetInfo.h.

◆ validateTarget()

virtual bool clang::TargetInfo::validateTarget ( DiagnosticsEngine Diags) const
inlinevirtual

Check the target is valid after it is fully initialized.

Reimplemented in clang::targets::MipsTargetInfo.

Definition at line 1348 of file TargetInfo.h.

Member Data Documentation

◆ AddrSpaceMap

const LangASMap* clang::TargetInfo::AddrSpaceMap
protected

Definition at line 183 of file TargetInfo.h.

Referenced by clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and TargetInfo().

◆ BigEndian

bool clang::TargetInfo::BigEndian
protected

Definition at line 168 of file TargetInfo.h.

Referenced by TargetInfo().

◆ ComplexLongDoubleUsesFP2Ret

unsigned clang::TargetInfo::ComplexLongDoubleUsesFP2Ret
protected

Definition at line 190 of file TargetInfo.h.

Referenced by TargetInfo().

◆ DataLayout

std::unique_ptr<llvm::DataLayout> clang::TargetInfo::DataLayout
protected

Definition at line 179 of file TargetInfo.h.

Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo().

◆ HasAlignMac68kSupport

unsigned clang::TargetInfo::HasAlignMac68kSupport
protected

◆ HasBuiltinMSVaList

unsigned clang::TargetInfo::HasBuiltinMSVaList
protected

◆ HasFloat128

bool clang::TargetInfo::HasFloat128
protected

◆ HasFloat16

bool clang::TargetInfo::HasFloat16
protected

◆ HasLegalHalfType

bool clang::TargetInfo::HasLegalHalfType
protected

◆ IsRenderScriptTarget

unsigned clang::TargetInfo::IsRenderScriptTarget
protected

◆ MaxAtomicInlineWidth

unsigned char clang::TargetInfo::MaxAtomicInlineWidth
protected

◆ MaxAtomicPromoteWidth

unsigned char clang::TargetInfo::MaxAtomicPromoteWidth
protected

◆ MCountName

const char* clang::TargetInfo::MCountName
protected

◆ NoAsmVariants

bool clang::TargetInfo::NoAsmVariants
protected

◆ PlatformMinVersion

VersionTuple clang::TargetInfo::PlatformMinVersion
mutableprotected

Definition at line 186 of file TargetInfo.h.

Referenced by TargetInfo().

◆ PlatformName

StringRef clang::TargetInfo::PlatformName
mutableprotected

Definition at line 185 of file TargetInfo.h.

Referenced by TargetInfo().

◆ RealTypeUsesObjCFPRet

unsigned clang::TargetInfo::RealTypeUsesObjCFPRet
protected

Definition at line 189 of file TargetInfo.h.

Referenced by TargetInfo().

◆ RegParmMax

unsigned char clang::TargetInfo::RegParmMax
protected

Definition at line 181 of file TargetInfo.h.

Referenced by TargetInfo().

◆ SimdDefaultAlign

unsigned short clang::TargetInfo::SimdDefaultAlign
protected

Definition at line 178 of file TargetInfo.h.

Referenced by TargetInfo().

◆ SSERegParmMax

unsigned char clang::TargetInfo::SSERegParmMax
protected

Definition at line 181 of file TargetInfo.h.

Referenced by TargetInfo().

◆ TheCXXABI

TargetCXXABI clang::TargetInfo::TheCXXABI
protected

◆ TLSSupported

bool clang::TargetInfo::TLSSupported
protected

◆ UseAddrSpaceMapMangling

bool clang::TargetInfo::UseAddrSpaceMapMangling
protected

Specify if mangling based on address space map should be used or not for language specific address spaces.

Definition at line 265 of file TargetInfo.h.

Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo(), clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and TargetInfo().

◆ VLASupported

bool clang::TargetInfo::VLASupported
protected

Definition at line 170 of file TargetInfo.h.

Referenced by clang::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and TargetInfo().


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