A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/Basic_2Targets_2X86_8h_source.html below:

clang: lib/Basic/Targets/X86.h Source File

13#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_X86_H 14#define LLVM_CLANG_LIB_BASIC_TARGETS_X86_H 20#include "llvm/Support/Compiler.h" 21#include "llvm/TargetParser/Triple.h" 22#include "llvm/TargetParser/X86TargetParser.h" 72 enum

XOPEnum { NoXOP, SSE4A, FMA4, XOP } XOPLevel = NoXOP;

76 bool

HasVAES =

false

;

77 bool

HasPCLMUL =

false

;

78 bool

HasVPCLMULQDQ =

false

;

79 bool

HasGFNI =

false

;

80 bool

HasLZCNT =

false

;

81 bool

HasRDRND =

false

;

82 bool

HasFSGSBASE =

false

;

84 bool

HasBMI2 =

false

;

85 bool

HasPOPCNT =

false

;

87 bool

HasPRFCHW =

false

;

88 bool

HasRDSEED =

false

;

93 bool

HasF16C =

false

;

94 bool

HasAVX10_1 =

false

;

95 bool

HasAVX10_1_512 =

false

;

96 bool

HasAVX10_2 =

false

;

97 bool

HasAVX10_2_512 =

false

;

98 bool

HasEVEX512 =

false

;

99 bool

HasAVX512CD =

false

;

100 bool

HasAVX512VPOPCNTDQ =

false

;

101 bool

HasAVX512VNNI =

false

;

102 bool

HasAVX512FP16 =

false

;

103 bool

HasAVX512BF16 =

false

;

104 bool

HasAVX512DQ =

false

;

105 bool

HasAVX512BITALG =

false

;

106 bool

HasAVX512BW =

false

;

107 bool

HasAVX512VL =

false

;

108 bool

HasAVX512VBMI =

false

;

109 bool

HasAVX512VBMI2 =

false

;

110 bool

HasAVXIFMA =

false

;

111 bool

HasAVX512IFMA =

false

;

112 bool

HasAVX512VP2INTERSECT =

false

;

113 bool

HasSHA =

false

;

114 bool

HasSHA512 =

false

;

115 bool

HasSHSTK =

false

;

116 bool

HasSM3 =

false

;

117 bool

HasSGX =

false

;

118 bool

HasSM4 =

false

;

119 bool

HasCX8 =

false

;

120 bool

HasCX16 =

false

;

121 bool

HasFXSR =

false

;

122 bool

HasXSAVE =

false

;

123 bool

HasXSAVEOPT =

false

;

124 bool

HasXSAVEC =

false

;

125 bool

HasXSAVES =

false

;

126 bool

HasMWAITX =

false

;

127 bool

HasCLZERO =

false

;

128 bool

HasCLDEMOTE =

false

;

129 bool

HasPCONFIG =

false

;

130 bool

HasPKU =

false

;

131 bool

HasCLFLUSHOPT =

false

;

132 bool

HasCLWB =

false

;

133 bool

HasMOVBE =

false

;

134 bool

HasMOVRS =

false

;

135 bool

HasPREFETCHI =

false

;

136 bool

HasRDPID =

false

;

137 bool

HasRDPRU =

false

;

138 bool

HasRetpolineExternalThunk =

false

;

139 bool

HasLAHFSAHF =

false

;

140 bool

HasWBNOINVD =

false

;

141 bool

HasWAITPKG =

false

;

142 bool

HasMOVDIRI =

false

;

143 bool

HasMOVDIR64B =

false

;

144 bool

HasPTWRITE =

false

;

145 bool

HasINVPCID =

false

;

146 bool

HasENQCMD =

false

;

147 bool

HasAVXVNNIINT16 =

false

;

148 bool

HasAMXFP16 =

false

;

149 bool

HasCMPCCXADD =

false

;

150 bool

HasRAOINT =

false

;

151 bool

HasAVXVNNIINT8 =

false

;

152 bool

HasAVXNECONVERT =

false

;

154 bool

HasWIDEKL =

false

;

155 bool

HasHRESET =

false

;

156 bool

HasAVXVNNI =

false

;

157 bool

HasAMXTILE =

false

;

158 bool

HasAMXINT8 =

false

;

159 bool

HasAMXBF16 =

false

;

160 bool

HasAMXCOMPLEX =

false

;

161 bool

HasAMXFP8 =

false

;

162 bool

HasAMXMOVRS =

false

;

163 bool

HasAMXTRANSPOSE =

false

;

164 bool

HasAMXAVX512 =

false

;

165 bool

HasAMXTF32 =

false

;

166 bool

HasSERIALIZE =

false

;

167 bool

HasTSXLDTRK =

false

;

168 bool

HasUSERMSR =

false

;

169 bool

HasUINTR =

false

;

170 bool

HasCRC32 =

false

;

171 bool

HasX87 =

false

;

172 bool

HasEGPR =

false

;

173 bool

HasPush2Pop2 =

false

;

174 bool

HasPPX =

false

;

175 bool

HasNDD =

false

;

176 bool

HasCCMP =

false

;

180 bool

HasInlineAsmUseGPR32 =

false

;

181 bool

HasBranchHint =

false

;

184

llvm::X86::CPUKind CPU = llvm::X86::CK_None;

186 enum FPMathKind

{ FP_Default, FP_SSE, FP_387 } FPMath = FP_Default;

191

BFloat16Width = BFloat16Align = 16;

192

BFloat16Format = &llvm::APFloat::BFloat();

193

LongDoubleFormat = &llvm::APFloat::x87DoubleExtended();

196

HasUnalignedAccess =

true

;

199

getTriple().isOSWindows() && getTriple().isOSBinFormatCOFF();

205 return

LongDoubleFormat == &llvm::APFloat::IEEEquad() ?

"g"

:

"e"

;

210 return

SSELevel == NoSSE ? LangOptions::FPEvalMethodKind::FEM_Extended

211

: LangOptions::FPEvalMethodKind::FEM_Source;

226 return

RegName ==

"esp"

|| RegName ==

"rsp"

;

233 bool

validateCpuSupports(StringRef FeatureStr)

const override

;

235 bool

validateCpuIs(StringRef FeatureStr)

const override

;

237 bool

validateCPUSpecificCPUDispatch(StringRef Name)

const override

;

239 char

CPUSpecificManglingCharacter(StringRef Name)

const override

;

241 void

getCPUSpecificCPUDispatchFeatures(

245

std::optional<unsigned> getCPUCacheLineSize()

const override

;

247 bool

validateAsmConstraint(

const char

*&Name,

251 bool

&HasSizeMismatch)

const override

{

254 if

(RegName ==

"esp"

|| RegName ==

"ebp"

) {

256

HasSizeMismatch = RegSize != 32;

263 bool

validateOutputSize(

const

llvm::StringMap<bool> &FeatureMap,

264

StringRef Constraint,

unsigned

Size)

const override

;

266 bool

validateInputSize(

const

llvm::StringMap<bool> &FeatureMap,

267

StringRef Constraint,

unsigned

Size)

const override

;

271 if

(CPU == llvm::X86::CK_None || CPU >= llvm::X86::CK_PentiumPro)

273 return

TargetInfo::checkCFProtectionReturnSupported(Diags);

278 if

(CPU == llvm::X86::CK_None || CPU >= llvm::X86::CK_PentiumPro)

280 return

TargetInfo::checkCFProtectionBranchSupported(Diags);

283 virtual bool

validateOperandSize(

const

llvm::StringMap<bool> &FeatureMap,

284

StringRef Constraint,

unsigned

Size)

const

;

286

std::string convertConstraint(

const char

*&Constraint)

const override

;

288 return "~{dirflag},~{fpsr},~{flags}"

;

293

StringRef::iterator I,

E

;

294 for

(I = Constraint.begin(),

E

= Constraint.end(); I !=

E

; ++I) {

295 if

(isalpha(*I) || *I ==

'@'

)

319 if

((++I !=

E

) && ((*I ==

'0'

) || (*I ==

'z'

)))

335 void

setFeatureEnabled(llvm::StringMap<bool> &Features, StringRef Name,

336 bool

Enabled)

const final

;

341 const

std::vector<std::string> &FeaturesVec)

const override

;

343 bool

isValidFeatureName(StringRef Name)

const override

;

345 bool hasFeature

(StringRef Feature)

const final

;

347 bool

handleTargetFeatures(std::vector<std::string> &Features,

351 if

(getTriple().getArch() == llvm::Triple::x86_64 && SSELevel >= AVX512F)

353 if

(getTriple().getArch() == llvm::Triple::x86_64 && SSELevel >= AVX)

355 if

(getTriple().getArch() == llvm::Triple::x86 && !HasMMX)

365 bool

Only64Bit = getTriple().getArch() != llvm::Triple::x86;

366 return

llvm::X86::parseArchX86(Name, Only64Bit) != llvm::X86::CK_None;

370 if

(Name ==

"generic"

)

376 return

llvm::X86::parseTuneCPU(Name) != llvm::X86::CK_None;

382 bool setCPU

(

const

std::string &Name)

override

{

383 bool

Only64Bit = getTriple().getArch() != llvm::Triple::x86;

384

CPU = llvm::X86::parseArchX86(Name, Only64Bit);

385 return

CPU != llvm::X86::CK_None;

390 bool

setFPMath(StringRef Name)

override

;

393 return

getTriple().getArch() != llvm::Triple::x86;

429 unsigned

TargetAddrSpace = getTargetAddressSpace(AS);

432 if

(TargetAddrSpace ==

ptr64

)

438 return

getPointerWidthV(AddrSpace);

448

DoubleAlign = LongLongAlign = 32;

449

LongDoubleWidth = 96;

450

LongDoubleAlign = 32;

452

resetDataLayout(Triple.isOSBinFormatMachO()

453

?

"e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:" 454 "128-f64:32:64-f80:32-n8:16:32-S128" 455

:

"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:" 456 "128-f64:32:64-f80:32-n8:16:32-S128"

,

457

Triple.isOSBinFormatMachO() ?

"_"

:

""

);

458

SizeType = UnsignedInt;

459

PtrDiffType = SignedInt;

460

IntPtrType = SignedInt;

464

RealTypeUsesObjCFPRetMask =

465

(

unsigned

)(FloatModeKind::Float | FloatModeKind::Double |

466

FloatModeKind::LongDouble);

469

MaxAtomicPromoteWidth = 64;

470

MaxAtomicInlineWidth = 32;

474 return

TargetInfo::CharPtrBuiltinVaList;

486

StringRef Constraint,

unsigned

Size)

const override

{

487 switch

(Constraint[0]) {

504 return

X86TargetInfo::validateOperandSize(FeatureMap, Constraint, Size);

509

MaxAtomicInlineWidth = 64;

516 return

llvm::IntegerType::MAX_INT_BITS;

532

SizeType = UnsignedLong;

533

IntPtrType = SignedLong;

534

PtrDiffType = SignedLong;

551

LongDoubleWidth = 128;

552

LongDoubleAlign = 128;

554

MaxVectorAlign = 256;

556

llvm::Triple

T

= llvm::Triple(Triple);

558

UseSignedCharForObjCBool =

false

;

559

SizeType = UnsignedLong;

560

IntPtrType = SignedLong;

561

resetDataLayout(

"e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-" 562 "f64:32:64-f80:128-n8:16:32-S128"

,

564

HasAlignMac68kSupport =

true

;

585

DoubleAlign = LongLongAlign = 64;

587

getTriple().isOSWindows() && getTriple().isOSBinFormatCOFF();

588 bool

IsMSVC = getTriple().isWindowsMSVCEnvironment();

589

std::string Layout = IsWinCOFF ?

"e-m:x"

:

"e-m:e"

;

590

Layout +=

"-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-"

;

591

Layout += IsMSVC ?

"f80:128"

:

"f80:32"

;

592

Layout +=

"-n8:16:32-a:0:32-S32"

;

593

resetDataLayout(Layout, IsWinCOFF ?

"_"

:

""

);

604

LongDoubleWidth = LongDoubleAlign = 64;

605

LongDoubleFormat = &llvm::APFloat::IEEEdouble();

610

WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder);

614

Builder.defineMacro(

"_M_IX86"

,

"600"

);

629

WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder);

630

Builder.defineMacro(

"_X86_"

);

639

this->WCharType = TargetInfo::UnsignedShort;

640

DoubleAlign = LongLongAlign = 64;

641

resetDataLayout(

"e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-" 642 "i128:128-f80:32-n8:16:32-a:0:32-S32"

,

648

X86_32TargetInfo::getTargetDefines(Opts, Builder);

649

Builder.defineMacro(

"_X86_"

);

650

Builder.defineMacro(

"__CYGWIN__"

);

651

Builder.defineMacro(

"__CYGWIN32__"

);

655

Builder.defineMacro(

"_GNU_SOURCE"

);

669

Builder.defineMacro(

"__INTEL__"

);

678

LongDoubleWidth = 64;

679

DefaultAlignForAttributeAligned = 32;

680

LongDoubleFormat = &llvm::APFloat::IEEEdouble();

681

resetDataLayout(

"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:32-" 682 "f64:32-f128:32-n8:16:32-a:0:32-S32"

);

683

WIntType = UnsignedInt;

688 return

CC ==

CC_C

? CCCR_OK : CCCR_Warning;

693

X86_32TargetInfo::getTargetDefines(Opts, Builder);

694

Builder.defineMacro(

"__iamcu"

);

695

Builder.defineMacro(

"__iamcu__"

);

706

SizeType = UnsignedLong;

707

IntPtrType = SignedLong;

708

PtrDiffType = SignedLong;

713

X86_32TargetInfo::getTargetDefines(Opts, Builder);

714

Builder.defineMacro(

"__INTEL__"

);

715

Builder.defineMacro(

"__rtems__"

);

724 const bool

IsX32 = getTriple().isX32();

726

getTriple().isOSWindows() && getTriple().isOSBinFormatCOFF();

727

LongWidth = LongAlign = PointerWidth = PointerAlign = IsX32 ? 32 : 64;

728

LongDoubleWidth = 128;

729

LongDoubleAlign = 128;

730

LargeArrayMinWidth = 128;

731

LargeArrayAlign = 128;

733

SizeType = IsX32 ? UnsignedInt : UnsignedLong;

734

PtrDiffType = IsX32 ? SignedInt : SignedLong;

735

IntPtrType = IsX32 ? SignedInt : SignedLong;

736

IntMaxType = IsX32 ? SignedLongLong : SignedLong;

737

Int64Type = IsX32 ? SignedLongLong : SignedLong;

741

resetDataLayout(IsX32 ?

"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-" 742 "i64:64-i128:128-f80:128-n8:16:32:64-S128" 743

: IsWinCOFF ?

"e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:" 744 "64-i128:128-f80:128-n8:16:32:64-S128" 745

:

"e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:" 746 "64-i128:128-f80:128-n8:16:32:64-S128"

);

749

RealTypeUsesObjCFPRetMask = (

unsigned

)FloatModeKind::LongDouble;

752

ComplexLongDoubleUsesFP2Ret =

true

;

755

HasBuiltinMSVaList =

true

;

758

MaxAtomicPromoteWidth = 128;

759

MaxAtomicInlineWidth = 64;

763 return

TargetInfo::X86_64ABIBuiltinVaList;

805 bool

&HasSizeMismatch)

const override

{

808 if

(RegName ==

"rsp"

|| RegName ==

"rbp"

) {

810

HasSizeMismatch = RegSize != 64;

815 return

X86TargetInfo::validateGlobalRegisterVariable(RegName, RegSize,

821

MaxAtomicInlineWidth = 128;

828 return

llvm::IntegerType::MAX_INT_BITS;

838

this->TheCXXABI.set(TargetCXXABI::Microsoft);

840

this->resetDataLayout(

"e-m:w-p270:32:32-p271:32:32-p272:64:64-" 841 "i64:64-i128:128-f80:128-n8:16:32:64-S128"

);

845 return

TargetInfo::CharPtrBuiltinVaList;

860 return

CCK_MicrosoftWin64;

870

LongWidth = LongAlign = 32;

871

DoubleAlign = LongLongAlign = 64;

872

IntMaxType = SignedLongLong;

873

Int64Type = SignedLongLong;

874

SizeType = UnsignedLongLong;

875

PtrDiffType = SignedLongLong;

876

IntPtrType = SignedLongLong;

880 return

TargetInfo::CharPtrBuiltinVaList;

914

LongDoubleWidth = LongDoubleAlign = 64;

915

LongDoubleFormat = &llvm::APFloat::IEEEdouble();

920

WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder);

921

Builder.defineMacro(

"_M_X64"

,

"100"

);

922

Builder.defineMacro(

"_M_AMD64"

,

"100"

);

927 return

CCK_MicrosoftWin64;

939

LongDoubleWidth = LongDoubleAlign = 128;

940

LongDoubleFormat = &llvm::APFloat::x87DoubleExtended();

950

this->WCharType = TargetInfo::UnsignedShort;

951

TLSSupported =

false

;

956

X86_64TargetInfo::getTargetDefines(Opts, Builder);

957

Builder.defineMacro(

"__x86_64__"

);

958

Builder.defineMacro(

"__CYGWIN__"

);

959

Builder.defineMacro(

"__CYGWIN64__"

);

963

Builder.defineMacro(

"_GNU_SOURCE"

);

972

Int64Type = SignedLongLong;

974

llvm::Triple

T

= llvm::Triple(Triple);

976

UseSignedCharForObjCBool =

false

;

977

resetDataLayout(

"e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-" 978 "f80:128-n8:16:32:64-S128"

,

999

IntMaxType = SignedLongLong;

1000

Int64Type = SignedLongLong;

1011

LongDoubleWidth = 64;

1012

LongDoubleFormat = &llvm::APFloat::IEEEdouble();

1022

LongDoubleFormat = &llvm::APFloat::IEEEquad();

1033

LongDoubleWidth = 64;

1034

LongDoubleFormat = &llvm::APFloat::IEEEdouble();

1044

LongDoubleFormat = &llvm::APFloat::IEEEquad();

Provides LLVM's BitmaskEnum facility to enumeration types declared in namespace clang.

static uint64_t getFMVPriority(const TargetInfo &TI, const CodeGenFunction::FMVResolverOption &RO)

static unsigned getCharWidth(tok::TokenKind kind, const TargetInfo &Target)

static bool hasFeature(StringRef Feature, const LangOptions &LangOpts, const TargetInfo &Target)

Determine whether a translation unit built using the current language options has the given feature.

Defines the clang::TargetOptions class.

Concrete class used by the front-end to report problems and issues.

FPEvalMethodKind

Possible float expression evaluation method choices.

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...

Exposes information about the current target.

BuiltinVaListKind

The different kinds of __builtin_va_list types defined by the target implementation.

Options for controlling the target.

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

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

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

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

X86TargetInfo::getTargetDefines - Return the set of the X86-specific macro definitions for this parti...

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

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

X86TargetInfo::getTargetDefines - Return the set of the X86-specific macro definitions for this parti...

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

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

bool handleTargetFeatures(std::vector< std::string > &Features, DiagnosticsEngine &Diags) override

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

bool handleTargetFeatures(std::vector< std::string > &Features, DiagnosticsEngine &Diags) override

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

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

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

bool allowsLargerPreferedTypeAlignment() const override

Whether target allows to overalign ABI-specified preferred alignment.

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

X86TargetInfo::getTargetDefines - Return the set of the X86-specific macro definitions for this parti...

CallingConvCheckResult checkCallingConvention(CallingConv CC) const override

Determines whether a given calling convention is valid for the target.

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

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

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

TargetInfo::CallingConvKind getCallingConvKind(bool ClangABICompat4) const override

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

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

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

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

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

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

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

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

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

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

void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override

X86TargetInfo::getTargetDefines - Return the set of the X86-specific macro definitions for this parti...

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

BuiltinVaListKind getBuiltinVaListKind() const override

CallingConvCheckResult checkCallingConvention(CallingConv CC) const override

TargetInfo::CallingConvKind getCallingConvKind(bool ClangABICompat4) const override

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

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

BuiltinVaListKind getBuiltinVaListKind() const override

CallingConvCheckResult checkCallingConvention(CallingConv CC) const override

bool isSPRegName(StringRef RegName) const override

bool isValidTuneCPUName(StringRef Name) const override

Determine whether this TargetInfo supports the given CPU name for tuning.

bool supportsCpuSupports() const override

bool isValidCPUName(StringRef Name) const override

Determine whether this TargetInfo supports the given CPU name.

bool setCPU(const std::string &Name) override

Target the specified CPU.

X86TargetInfo(const llvm::Triple &Triple, const TargetOptions &)

bool supportsExtendIntArgs() const override

Whether the option -fextend-arguments={32,64} is supported on the target.

CallingConv getDefaultCallingConv() const override

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

bool useFP16ConversionIntrinsics() const override

Check whether llvm intrinsics such as llvm.convert.to.fp16 should be used to convert to and from __fp...

bool hasSjLjLowering() const override

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

CallingConvCheckResult checkCallingConvention(CallingConv CC) const override

Determines whether a given calling convention is valid for the target.

bool supportsCpuIs() const override

bool supportsCpuInit() const override

bool checkCFProtectionBranchSupported(DiagnosticsEngine &Diags) const override

Check if the target supports CFProtection branch.

StringRef getConstraintRegister(StringRef Constraint, StringRef Expression) const override

Extracts a register from the passed constraint (if it is a single-register constraint) and the asm la...

std::string_view getClobbers() const override

Returns a string of target-specific clobbers, in LLVM format.

bool supportSourceEvalMethod() const override

bool checkCFProtectionReturnSupported(DiagnosticsEngine &Diags) const override

Check if the target supports CFProtection return.

LangOptions::FPEvalMethodKind getFPEvalMethod() const override

Return the value for the C99 FLT_EVAL_METHOD macro.

uint64_t getPointerWidthV(LangAS AS) const override

void setSupportedOpenCLOpts() override

Set supported OpenCL extensions and optional core features.

bool supportsTargetAttributeTune() const override

Determine whether this TargetInfo supports tune in target attribute.

const char * getLongDoubleMangling() const override

Return the mangled code of long double.

bool checkArithmeticFenceSupported() const override

Controls if __arithmetic_fence is supported in the targeted backend.

bool validateGlobalRegisterVariable(StringRef RegName, unsigned RegSize, bool &HasSizeMismatch) const override

Validate register name used for global register variables.

StringRef getABI() const override

Get the ABI currently in use.

ArrayRef< TargetInfo::GCCRegAlias > getGCCRegAliases() const override

uint64_t getPointerAlignV(LangAS AddrSpace) const override

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

size_t getMaxBitIntWidth() const override

void setMaxAtomicWidth() override

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

int getEHDataRegisterNumber(unsigned RegNo) const override

Return the register number that __builtin_eh_return_regno would return with the specified argument.

bool hasBitIntType() const override

Determine whether the _BitInt type is supported on this target.

bool validateOperandSize(const llvm::StringMap< bool > &FeatureMap, StringRef Constraint, unsigned Size) const override

BuiltinVaListKind getBuiltinVaListKind() const override

Returns the kind of __builtin_va_list type that should be used with this target.

bool validateGlobalRegisterVariable(StringRef RegName, unsigned RegSize, bool &HasSizeMismatch) const override

Validate register name used for global register variables.

bool hasInt128Type() const override

Determine whether the __int128 type is supported on this target.

CallingConvCheckResult checkCallingConvention(CallingConv CC) const override

Determines whether a given calling convention is valid for the target.

CallingConv getDefaultCallingConv() const override

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

bool hasBitIntType() const override

Determine whether the _BitInt type is supported on this target.

int getEHDataRegisterNumber(unsigned RegNo) const override

Return the register number that __builtin_eh_return_regno would return with the specified argument.

void setMaxAtomicWidth() override

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

size_t getMaxBitIntWidth() const override

BuiltinVaListKind getBuiltinVaListKind() const override

Returns the kind of __builtin_va_list type that should be used with this target.

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

unsigned getUnwindWordWidth() const override

unsigned getRegisterWidth() const override

Return the "preferred" register width on this target.

Defines the clang::TargetInfo interface.

static const unsigned X86AddrSpaceMap[]

LLVM_LIBRARY_VISIBILITY void addCygMingDefines(const clang::LangOptions &Opts, clang::MacroBuilder &Builder)

LLVM_LIBRARY_VISIBILITY void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName, const clang::LangOptions &Opts)

Define a macro name and standard variants.

The JSON file list parser is used to communicate input to InstallAPI.

LangAS

Defines the address space values used by the address space qualifier of QualType.

const FunctionProtoType * T

CallingConv

CallingConv - Specifies the calling convention that a function uses.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4