12#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
13#define LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
20template <
typename TgtInfo>
32 TgtInfo::getTargetDefines(Opts, Builder);
33 getOSDefines(Opts, TgtInfo::getTriple(), Builder);
38template <
typename Target>
43 Builder.defineMacro(
"__CloudABI__");
44 Builder.defineMacro(
"__ELF__");
47 Builder.defineMacro(
"__STDC_ISO_10646__",
"201206L");
48 Builder.defineMacro(
"__STDC_UTF_16__");
49 Builder.defineMacro(
"__STDC_UTF_32__");
57template <
typename Target>
63 Builder.defineMacro(
"__Ananas__");
64 Builder.defineMacro(
"__ELF__");
72 const llvm::Triple &Triple, StringRef &PlatformName,
73 VersionTuple &PlatformMinVersion);
75template <
typename Target>
81 this->PlatformMinVersion);
89 this->TLSSupported =
false;
91 if (Triple.isMacOSX())
92 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
93 else if (Triple.isiOS()) {
96 if (Triple.isArch64Bit())
97 this->TLSSupported = !Triple.isOSVersionLT(8);
98 else if (Triple.isArch32Bit()) {
99 if (!Triple.isSimulatorEnvironment())
100 this->TLSSupported = !Triple.isOSVersionLT(9);
102 this->TLSSupported = !Triple.isOSVersionLT(10);
104 }
else if (Triple.isWatchOS()) {
105 if (!Triple.isSimulatorEnvironment())
106 this->TLSSupported = !Triple.isOSVersionLT(2);
108 this->TLSSupported = !Triple.isOSVersionLT(3);
109 }
else if (Triple.isDriverKit()) {
113 this->MCountName =
"\01mcount";
118 return "__TEXT,__StaticInit,regular,pure_instructions";
130 llvm::VersionTuple MinVersion;
131 const llvm::Triple &T = this->getTriple();
135 case llvm::Triple::Darwin:
136 case llvm::Triple::MacOSX:
137 MinVersion = llvm::VersionTuple(10U, 14U);
139 case llvm::Triple::IOS:
140 case llvm::Triple::TvOS:
141 MinVersion = llvm::VersionTuple(12U);
143 case llvm::Triple::WatchOS:
144 MinVersion = llvm::VersionTuple(5U);
151 if (T.getOSVersion() < MinVersion)
157 bool IsSigned)
const final {
159 return BitWidth == 64
160 ? (IsSigned ? TargetInfo::SignedLongLong
161 : TargetInfo::UnsignedLongLong)
162 : TargetInfo::getLeastIntTypeByWidth(BitWidth, IsSigned);
171template <
typename Target>
178 Builder.defineMacro(
"__DragonFly__");
179 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
180 Builder.defineMacro(
"__ELF__");
181 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
182 Builder.defineMacro(
"__tune_i386__");
184 if (this->HasFloat128)
185 Builder.defineMacro(
"__FLOAT128__");
191 switch (Triple.getArch()) {
193 case llvm::Triple::x86:
194 case llvm::Triple::x86_64:
195 this->HasFloat128 =
true;
196 this->MCountName =
".mcount";
202#ifndef FREEBSD_CC_VERSION
203#define FREEBSD_CC_VERSION 0U
207template <
typename Target>
214 unsigned Release = Triple.getOSMajorVersion();
219 CCVersion = Release * 100000U + 1U;
221 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
222 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
223 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
225 Builder.defineMacro(
"__ELF__");
236 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
242 switch (Triple.getArch()) {
244 case llvm::Triple::x86:
245 case llvm::Triple::x86_64:
246 this->MCountName =
".mcount";
248 case llvm::Triple::mips:
249 case llvm::Triple::mipsel:
250 case llvm::Triple::ppc:
251 case llvm::Triple::ppcle:
252 case llvm::Triple::ppc64:
253 case llvm::Triple::ppc64le:
254 this->MCountName =
"_mcount";
256 case llvm::Triple::arm:
257 this->MCountName =
"__mcount";
259 case llvm::Triple::riscv32:
260 case llvm::Triple::riscv64:
267template <
typename Target>
275 Builder.defineMacro(
"__FreeBSD_kernel__");
276 Builder.defineMacro(
"__GLIBC__");
277 Builder.defineMacro(
"__ELF__");
278 if (Opts.POSIXThreads)
279 Builder.defineMacro(
"_REENTRANT");
281 Builder.defineMacro(
"_GNU_SOURCE");
289template <
typename Target>
295 Builder.defineMacro(
"__HAIKU__");
296 Builder.defineMacro(
"__ELF__");
298 if (this->HasFloat128)
299 Builder.defineMacro(
"__FLOAT128__");
305 this->SizeType = TargetInfo::UnsignedLong;
306 this->IntPtrType = TargetInfo::SignedLong;
307 this->PtrDiffType = TargetInfo::SignedLong;
308 this->ProcessIDType = TargetInfo::SignedLong;
309 this->TLSSupported =
false;
310 switch (Triple.getArch()) {
313 case llvm::Triple::x86:
314 case llvm::Triple::x86_64:
315 this->HasFloat128 =
true;
322template <
typename Target>
329 Builder.defineMacro(
"__GNU__");
330 Builder.defineMacro(
"__gnu_hurd__");
331 Builder.defineMacro(
"__MACH__");
332 Builder.defineMacro(
"__GLIBC__");
333 Builder.defineMacro(
"__ELF__");
334 if (Opts.POSIXThreads)
335 Builder.defineMacro(
"_REENTRANT");
337 Builder.defineMacro(
"_GNU_SOURCE");
344template <
typename Target>
351 Builder.defineMacro(
"__minix",
"3");
352 Builder.defineMacro(
"_EM_WSIZE",
"4");
353 Builder.defineMacro(
"_EM_PSIZE",
"4");
354 Builder.defineMacro(
"_EM_SSIZE",
"2");
355 Builder.defineMacro(
"_EM_LSIZE",
"4");
356 Builder.defineMacro(
"_EM_FSIZE",
"4");
357 Builder.defineMacro(
"_EM_DSIZE",
"8");
358 Builder.defineMacro(
"__ELF__");
367template <
typename Target>
375 Builder.defineMacro(
"__ELF__");
376 if (Triple.isAndroid()) {
377 Builder.defineMacro(
"__ANDROID__",
"1");
378 this->PlatformName =
"android";
379 this->PlatformMinVersion = Triple.getEnvironmentVersion();
380 const unsigned Maj = this->PlatformMinVersion.getMajor();
382 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
385 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
388 Builder.defineMacro(
"__gnu_linux__");
390 if (Opts.POSIXThreads)
391 Builder.defineMacro(
"_REENTRANT");
393 Builder.defineMacro(
"_GNU_SOURCE");
394 if (this->HasFloat128)
395 Builder.defineMacro(
"__FLOAT128__");
401 this->WIntType = TargetInfo::UnsignedInt;
403 switch (Triple.getArch()) {
406 case llvm::Triple::mips:
407 case llvm::Triple::mipsel:
408 case llvm::Triple::mips64:
409 case llvm::Triple::mips64el:
410 case llvm::Triple::ppc:
411 case llvm::Triple::ppcle:
412 case llvm::Triple::ppc64:
413 case llvm::Triple::ppc64le:
414 this->MCountName =
"_mcount";
416 case llvm::Triple::x86:
417 case llvm::Triple::x86_64:
418 this->HasFloat128 =
true;
424 return ".text.startup";
429template <
typename Target>
435 Builder.defineMacro(
"__NetBSD__");
436 Builder.defineMacro(
"__unix__");
437 Builder.defineMacro(
"__ELF__");
438 if (Opts.POSIXThreads)
439 Builder.defineMacro(
"_REENTRANT");
445 this->MCountName =
"__mcount";
450template <
typename Target>
457 Builder.defineMacro(
"__OpenBSD__");
459 Builder.defineMacro(
"__ELF__");
460 if (Opts.POSIXThreads)
461 Builder.defineMacro(
"_REENTRANT");
462 if (this->HasFloat128)
463 Builder.defineMacro(
"__FLOAT128__");
466 Builder.defineMacro(
"__STDC_NO_THREADS__");
472 this->WCharType = this->WIntType = this->SignedInt;
473 this->IntMaxType = TargetInfo::SignedLongLong;
474 this->Int64Type = TargetInfo::SignedLongLong;
475 switch (Triple.getArch()) {
476 case llvm::Triple::x86:
477 case llvm::Triple::x86_64:
478 this->HasFloat128 =
true;
481 this->MCountName =
"__mcount";
483 case llvm::Triple::mips64:
484 case llvm::Triple::mips64el:
485 case llvm::Triple::ppc:
486 case llvm::Triple::ppc64:
487 case llvm::Triple::ppc64le:
488 case llvm::Triple::sparcv9:
489 this->MCountName =
"_mcount";
491 case llvm::Triple::riscv32:
492 case llvm::Triple::riscv64:
499template <
typename Target>
505 Builder.defineMacro(
"__PPC__");
506 Builder.defineMacro(
"__PPU__");
507 Builder.defineMacro(
"__CELLOS_LV2__");
508 Builder.defineMacro(
"__ELF__");
509 Builder.defineMacro(
"__LP32__");
510 Builder.defineMacro(
"_ARCH_PPC64");
511 Builder.defineMacro(
"__powerpc64__");
517 this->LongWidth = this->LongAlign = 32;
518 this->PointerWidth = this->PointerAlign = 32;
519 this->IntMaxType = TargetInfo::SignedLongLong;
520 this->Int64Type = TargetInfo::SignedLongLong;
521 this->SizeType = TargetInfo::UnsignedInt;
522 this->resetDataLayout(
"E-m:e-p:32:32-i64:64-n32:64");
527template <
typename Target>
532 Builder.defineMacro(
"__FreeBSD__",
"9");
533 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
534 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
536 Builder.defineMacro(
"__ELF__");
537 Builder.defineMacro(
"__SCE__");
543 this->WCharType = TargetInfo::UnsignedShort;
547 this->MaxTLSAlign = 256;
551 this->UseExplicitBitFieldAlignment =
false;
553 this->MCountName =
".mcount";
554 this->NewAlign = 256;
555 this->SuitableAlign = 256;
560 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
569template <
typename Target>
577 Builder.defineMacro(
"__ORBIS__");
585template <
typename Target>
593 Builder.defineMacro(
"__PROSPERO__");
601template <
typename Target>
608 Builder.defineMacro(
"__rtems__");
609 Builder.defineMacro(
"__ELF__");
611 Builder.defineMacro(
"_GNU_SOURCE");
617 switch (Triple.getArch()) {
619 case llvm::Triple::x86:
622 case llvm::Triple::mips:
623 case llvm::Triple::mipsel:
624 case llvm::Triple::ppc:
625 case llvm::Triple::ppc64:
626 case llvm::Triple::ppc64le:
629 case llvm::Triple::arm:
637template <
typename Target>
644 Builder.defineMacro(
"__ELF__");
645 Builder.defineMacro(
"__svr4__");
646 Builder.defineMacro(
"__SVR4");
652 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
654 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
655 if (Opts.CPlusPlus) {
656 Builder.defineMacro(
"__C99FEATURES__");
657 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
660 Builder.defineMacro(
"_LARGEFILE_SOURCE");
661 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
662 Builder.defineMacro(
"__EXTENSIONS__");
663 if (Opts.POSIXThreads)
664 Builder.defineMacro(
"_REENTRANT");
665 if (this->HasFloat128)
666 Builder.defineMacro(
"__FLOAT128__");
672 if (this->PointerWidth == 64) {
673 this->WCharType = this->WIntType = this->SignedInt;
675 this->WCharType = this->WIntType = this->SignedLong;
677 switch (Triple.getArch()) {
680 case llvm::Triple::x86:
681 case llvm::Triple::x86_64:
682 this->HasFloat128 =
true;
689template <
typename Target>
695 Builder.defineMacro(
"_IBMR2");
696 Builder.defineMacro(
"_POWER");
697 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
699 Builder.defineMacro(
"_AIX");
700 Builder.defineMacro(
"__TOS_AIX__");
701 Builder.defineMacro(
"__HOS_AIX__");
704 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
705 Builder.defineMacro(
"__STDC_NO_THREADS__");
708 if (Opts.EnableAIXExtendedAltivecABI)
709 Builder.defineMacro(
"__EXTABI__");
711 VersionTuple OsVersion = Triple.getOSVersion();
715 if (OsVersion >= VersionTuple(3, 2))
716 Builder.defineMacro(
"_AIX32");
717 if (OsVersion >= VersionTuple(4, 1))
718 Builder.defineMacro(
"_AIX41");
719 if (OsVersion >= VersionTuple(4, 3))
720 Builder.defineMacro(
"_AIX43");
721 if (OsVersion >= VersionTuple(5, 0))
722 Builder.defineMacro(
"_AIX50");
723 if (OsVersion >= VersionTuple(5, 1))
724 Builder.defineMacro(
"_AIX51");
725 if (OsVersion >= VersionTuple(5, 2))
726 Builder.defineMacro(
"_AIX52");
727 if (OsVersion >= VersionTuple(5, 3))
728 Builder.defineMacro(
"_AIX53");
729 if (OsVersion >= VersionTuple(6, 1))
730 Builder.defineMacro(
"_AIX61");
731 if (OsVersion >= VersionTuple(7, 1))
732 Builder.defineMacro(
"_AIX71");
733 if (OsVersion >= VersionTuple(7, 2))
734 Builder.defineMacro(
"_AIX72");
735 if (OsVersion >= VersionTuple(7, 3))
736 Builder.defineMacro(
"_AIX73");
739 Builder.defineMacro(
"_LONG_LONG");
741 if (Opts.POSIXThreads) {
742 Builder.defineMacro(
"_THREAD_SAFE");
745 if (this->PointerWidth == 64) {
746 Builder.defineMacro(
"__64BIT__");
751 if (Opts.CPlusPlus && Opts.WChar) {
752 Builder.defineMacro(
"_WCHAR_T");
759 this->MCountName =
"__mcount";
760 this->TheCXXABI.set(TargetCXXABI::XL);
762 if (this->PointerWidth == 64) {
763 this->WCharType = this->UnsignedInt;
765 this->WCharType = this->UnsignedShort;
767 this->UseZeroLengthBitfieldAlignment =
true;
783template <
typename Target>
789 Builder.defineMacro(
"_LONG_LONG");
790 Builder.defineMacro(
"_OPEN_DEFAULT");
792 Builder.defineMacro(
"_UNIX03_WITHDRAWN");
793 Builder.defineMacro(
"__370__");
794 Builder.defineMacro(
"__BFP__");
796 Builder.defineMacro(
"__BOOL__");
797 Builder.defineMacro(
"__LONGNAME__");
798 Builder.defineMacro(
"__MVS__");
799 Builder.defineMacro(
"__THW_370__");
800 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
801 Builder.defineMacro(
"__TOS_390__");
802 Builder.defineMacro(
"__TOS_MVS__");
803 Builder.defineMacro(
"__XPLINK__");
805 if (this->PointerWidth == 64)
806 Builder.defineMacro(
"__64BIT__");
808 if (Opts.CPlusPlus) {
809 Builder.defineMacro(
"__DLL__");
811 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
815 Builder.defineMacro(
"_MI_BUILTIN");
816 Builder.defineMacro(
"_EXT");
819 if (Opts.CPlusPlus && Opts.WChar) {
822 Builder.defineMacro(
"__wchar_t");
825 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
831 this->WCharType = TargetInfo::UnsignedInt;
832 this->MaxAlignedAttribute = 128;
833 this->UseBitFieldTypeAlignment =
false;
834 this->UseZeroLengthBitfieldAlignment =
true;
835 this->UseLeadingZeroLengthBitfield =
false;
836 this->ZeroLengthBitfieldBoundary = 32;
848template <
typename Target>
859 this->WCharType = TargetInfo::UnsignedShort;
860 this->WIntType = TargetInfo::UnsignedShort;
864template <
typename Target>
869 if (Opts.POSIXThreads)
870 Builder.defineMacro(
"_REENTRANT");
872 Builder.defineMacro(
"_GNU_SOURCE");
875 Builder.defineMacro(
"__ELF__");
876 Builder.defineMacro(
"__native_client__");
882 this->LongAlign = 32;
883 this->LongWidth = 32;
884 this->PointerAlign = 32;
885 this->PointerWidth = 32;
886 this->IntMaxType = TargetInfo::SignedLongLong;
887 this->Int64Type = TargetInfo::SignedLongLong;
888 this->DoubleAlign = 64;
889 this->LongDoubleWidth = 64;
890 this->LongDoubleAlign = 64;
891 this->LongLongWidth = 64;
892 this->LongLongAlign = 64;
893 this->SizeType = TargetInfo::UnsignedInt;
894 this->PtrDiffType = TargetInfo::SignedInt;
895 this->IntPtrType = TargetInfo::SignedInt;
897 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
898 if (Triple.getArch() == llvm::Triple::arm) {
900 }
else if (Triple.getArch() == llvm::Triple::x86) {
901 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
902 "i64:64-n8:16:32-S128");
903 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
904 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
905 "i64:64-n8:16:32:64-S128");
906 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
909 assert(Triple.getArch() == llvm::Triple::le32);
910 this->resetDataLayout(
"e-p:32:32-i64:64");
916template <
typename Target>
921 Builder.defineMacro(
"__Fuchsia__");
922 Builder.defineMacro(
"__ELF__");
923 if (Opts.POSIXThreads)
924 Builder.defineMacro(
"_REENTRANT");
927 Builder.defineMacro(
"_GNU_SOURCE");
928 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
929 this->PlatformName =
"fuchsia";
930 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
936 this->MCountName =
"__mcount";
937 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
942template <
typename Target>
949 if (Opts.POSIXThreads)
950 Builder.defineMacro(
"_REENTRANT");
953 Builder.defineMacro(
"_GNU_SOURCE");
955 Builder.defineMacro(
"__FLOAT128__");
962 this->MCountName =
"__mcount";
963 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
964 this->HasFloat128 =
true;
969template <
typename Target>
972 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
975 Builder.defineMacro(
"__wasi__");
983template <
typename Target>
986 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
990 Builder.defineMacro(
"__EMSCRIPTEN__");
991 if (Opts.POSIXThreads)
992 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
1004 this->LongDoubleAlign = 64;
#define FREEBSD_CC_VERSION
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
FPEvalMethodKind
Possible float expression evaluation method choices.
@ FEM_Double
Use the type double for fp arithmetic.
Options for controlling the target.
AIXTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
bool defaultsToAIXPowerAlignment() const override
LangOptions::FPEvalMethodKind getFPEvalMethod() const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
unsigned getExnObjectAlignment() const override
TargetInfo::IntType getLeastIntTypeByWidth(unsigned BitWidth, bool IsSigned) const final
DarwinTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
bool hasProtectedVisibility() const override
Darwin does not support protected visibility.
const char * getStaticInitSectionSpecifier() const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
DragonFlyBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
EmscriptenTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
FreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
FuchsiaTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
HaikuTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
LinuxTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
const char * getStaticInitSectionSpecifier() const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
NaClTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
NetBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const =0
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
OpenBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
PS3PPUTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
TargetInfo::CallingConvCheckResult checkCallingConvention(CallingConv CC) const override
PSOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
RTEMSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
SolarisTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
WebAssemblyOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
WindowsTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool areDefaultedSMFStillPOD(const LangOptions &) const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
ZOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void addWindowsDefines(const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder)
void DefineStd(MacroBuilder &Builder, StringRef MacroName, const LangOptions &Opts)
DefineStd - Define a macro name and standard variants.
void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple, StringRef &PlatformName, VersionTuple &PlatformMinVersion)
CallingConv
CallingConv - Specifies the calling convention that a function uses.
IntType
===-— Target Data Type Query Methods ----------------------------—===//