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);
38 const llvm::Triple &Triple, StringRef &PlatformName,
39 VersionTuple &PlatformMinVersion);
41template <
typename Target>
47 this->PlatformMinVersion);
55 this->TLSSupported =
false;
57 if (Triple.isMacOSX())
58 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
59 else if (Triple.isiOS()) {
62 if (Triple.isArch64Bit())
63 this->TLSSupported = !Triple.isOSVersionLT(8);
64 else if (Triple.isArch32Bit()) {
65 if (!Triple.isSimulatorEnvironment())
66 this->TLSSupported = !Triple.isOSVersionLT(9);
68 this->TLSSupported = !Triple.isOSVersionLT(10);
70 }
else if (Triple.isWatchOS()) {
71 if (!Triple.isSimulatorEnvironment())
72 this->TLSSupported = !Triple.isOSVersionLT(2);
74 this->TLSSupported = !Triple.isOSVersionLT(3);
75 }
else if (Triple.isDriverKit()) {
77 }
else if (Triple.isXROS())
78 this->TLSSupported =
true;
80 this->MCountName =
"\01mcount";
85 return "__TEXT,__StaticInit,regular,pure_instructions";
97 llvm::VersionTuple MinVersion;
98 const llvm::Triple &
T = this->getTriple();
102 case llvm::Triple::Darwin:
103 case llvm::Triple::MacOSX:
104 MinVersion = llvm::VersionTuple(10U, 14U);
106 case llvm::Triple::IOS:
107 case llvm::Triple::TvOS:
108 MinVersion = llvm::VersionTuple(12U);
110 case llvm::Triple::WatchOS:
111 MinVersion = llvm::VersionTuple(5U);
113 case llvm::Triple::XROS:
114 MinVersion = llvm::VersionTuple(0);
121 if (
T.getOSVersion() < MinVersion)
127 bool IsSigned)
const final {
129 return BitWidth == 64
130 ? (IsSigned ? TargetInfo::SignedLongLong
131 : TargetInfo::UnsignedLongLong)
132 : TargetInfo::getLeastIntTypeByWidth(BitWidth, IsSigned);
141template <
typename Target>
148 Builder.defineMacro(
"__DragonFly__");
149 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
150 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
151 Builder.defineMacro(
"__tune_i386__");
153 if (this->HasFloat128)
154 Builder.defineMacro(
"__FLOAT128__");
160 switch (Triple.getArch()) {
162 case llvm::Triple::x86:
163 case llvm::Triple::x86_64:
164 this->HasFloat128 =
true;
165 this->MCountName =
".mcount";
171#ifndef FREEBSD_CC_VERSION
172#define FREEBSD_CC_VERSION 0U
176template <
typename Target>
183 unsigned Release = Triple.getOSMajorVersion();
188 CCVersion = Release * 100000U + 1U;
190 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
191 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
192 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
194 if (this->HasFloat128)
195 Builder.defineMacro(
"__FLOAT128__");
206 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
212 switch (Triple.getArch()) {
213 case llvm::Triple::x86:
214 case llvm::Triple::x86_64:
215 this->HasFloat128 =
true;
218 this->MCountName =
".mcount";
220 case llvm::Triple::mips:
221 case llvm::Triple::mipsel:
222 case llvm::Triple::ppc:
223 case llvm::Triple::ppcle:
224 case llvm::Triple::ppc64:
225 case llvm::Triple::ppc64le:
226 this->MCountName =
"_mcount";
228 case llvm::Triple::arm:
229 this->MCountName =
"__mcount";
231 case llvm::Triple::riscv32:
232 case llvm::Triple::riscv64:
234 case llvm::Triple::loongarch32:
235 case llvm::Triple::loongarch64:
242template <
typename Target>
250 Builder.defineMacro(
"__FreeBSD_kernel__");
251 Builder.defineMacro(
"__GLIBC__");
252 if (Opts.POSIXThreads)
253 Builder.defineMacro(
"_REENTRANT");
255 Builder.defineMacro(
"_GNU_SOURCE");
263template <
typename Target>
269 Builder.defineMacro(
"__HAIKU__");
271 if (this->HasFloat128)
272 Builder.defineMacro(
"__FLOAT128__");
278 this->SizeType = TargetInfo::UnsignedLong;
279 this->IntPtrType = TargetInfo::SignedLong;
280 this->PtrDiffType = TargetInfo::SignedLong;
281 this->ProcessIDType = TargetInfo::SignedLong;
282 switch (Triple.getArch()) {
285 case llvm::Triple::x86:
286 case llvm::Triple::x86_64:
287 this->HasFloat128 =
true;
294template <
typename Target>
301 Builder.defineMacro(
"__GNU__");
302 Builder.defineMacro(
"__gnu_hurd__");
303 Builder.defineMacro(
"__MACH__");
304 Builder.defineMacro(
"__GLIBC__");
305 if (Opts.POSIXThreads)
306 Builder.defineMacro(
"_REENTRANT");
308 Builder.defineMacro(
"_GNU_SOURCE");
315template <
typename Target>
323 if (Triple.isAndroid()) {
324 Builder.defineMacro(
"__ANDROID__",
"1");
325 this->PlatformName =
"android";
326 this->PlatformMinVersion = Triple.getEnvironmentVersion();
327 const unsigned Maj = this->PlatformMinVersion.getMajor();
329 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
332 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
335 Builder.defineMacro(
"__gnu_linux__");
337 if (Opts.POSIXThreads)
338 Builder.defineMacro(
"_REENTRANT");
340 Builder.defineMacro(
"_GNU_SOURCE");
341 if (this->HasFloat128)
342 Builder.defineMacro(
"__FLOAT128__");
343 if (Triple.isTime64ABI()) {
344 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
345 Builder.defineMacro(
"_TIME_BITS",
"64");
352 this->WIntType = TargetInfo::UnsignedInt;
354 switch (Triple.getArch()) {
357 case llvm::Triple::mips:
358 case llvm::Triple::mipsel:
359 case llvm::Triple::mips64:
360 case llvm::Triple::mips64el:
361 case llvm::Triple::ppc:
362 case llvm::Triple::ppcle:
363 case llvm::Triple::ppc64:
364 case llvm::Triple::ppc64le:
365 this->MCountName =
"_mcount";
367 case llvm::Triple::x86:
368 case llvm::Triple::x86_64:
369 this->HasFloat128 =
true;
375 return ".text.startup";
380template <
typename Target>
386 Builder.defineMacro(
"__NetBSD__");
387 Builder.defineMacro(
"__unix__");
388 if (Opts.POSIXThreads)
389 Builder.defineMacro(
"_REENTRANT");
390 if (this->HasFloat128)
391 Builder.defineMacro(
"__FLOAT128__");
397 this->MCountName =
"__mcount";
398 switch (Triple.getArch()) {
401 case llvm::Triple::x86:
402 case llvm::Triple::x86_64:
403 this->HasFloat128 =
true;
410template <
typename Target>
417 Builder.defineMacro(
"__OpenBSD__");
419 if (Opts.POSIXThreads)
420 Builder.defineMacro(
"_REENTRANT");
421 if (this->HasFloat128)
422 Builder.defineMacro(
"__FLOAT128__");
425 Builder.defineMacro(
"__STDC_NO_THREADS__");
431 this->WCharType = this->WIntType = this->SignedInt;
432 this->IntMaxType = TargetInfo::SignedLongLong;
433 this->Int64Type = TargetInfo::SignedLongLong;
434 switch (Triple.getArch()) {
435 case llvm::Triple::x86:
436 case llvm::Triple::x86_64:
437 this->HasFloat128 =
true;
440 this->MCountName =
"__mcount";
442 case llvm::Triple::mips64:
443 case llvm::Triple::mips64el:
444 case llvm::Triple::ppc:
445 case llvm::Triple::ppc64:
446 case llvm::Triple::ppc64le:
447 case llvm::Triple::sparcv9:
448 this->MCountName =
"_mcount";
450 case llvm::Triple::riscv32:
451 case llvm::Triple::riscv64:
458template <
typename Target>
464 Builder.defineMacro(
"__PPU__");
465 Builder.defineMacro(
"__CELLOS_LV2__");
466 Builder.defineMacro(
"__LP32__");
467 Builder.defineMacro(
"_ARCH_PPC64");
468 Builder.defineMacro(
"__powerpc64__");
474 this->LongWidth = this->LongAlign = 32;
475 this->PointerWidth = this->PointerAlign = 32;
476 this->IntMaxType = TargetInfo::SignedLongLong;
477 this->Int64Type = TargetInfo::SignedLongLong;
478 this->SizeType = TargetInfo::UnsignedInt;
479 this->resetDataLayout(
"E-m:e-p:32:32-Fi64-i64:64-i128:128-n32:64");
484template <
typename Target>
489 Builder.defineMacro(
"__FreeBSD__",
"9");
490 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
491 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
493 Builder.defineMacro(
"__SCE__");
494 Builder.defineMacro(
"__STDC_NO_COMPLEX__");
495 Builder.defineMacro(
"__STDC_NO_THREADS__");
501 this->WCharType = TargetInfo::UnsignedShort;
505 this->MaxTLSAlign = 256;
509 this->UseExplicitBitFieldAlignment =
false;
511 this->MCountName =
".mcount";
512 this->NewAlign = 256;
513 this->SuitableAlign = 256;
518 return (CC ==
CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
527template <
typename Target>
535 Builder.defineMacro(
"__ORBIS__");
543template <
typename Target>
551 Builder.defineMacro(
"__PROSPERO__");
559template <
typename Target>
566 Builder.defineMacro(
"__rtems__");
568 Builder.defineMacro(
"_GNU_SOURCE");
574 switch (Triple.getArch()) {
576 case llvm::Triple::x86:
579 case llvm::Triple::mips:
580 case llvm::Triple::mipsel:
581 case llvm::Triple::ppc:
582 case llvm::Triple::ppc64:
583 case llvm::Triple::ppc64le:
586 case llvm::Triple::arm:
594template <
typename Target>
601 Builder.defineMacro(
"__svr4__");
602 Builder.defineMacro(
"__SVR4");
608 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
610 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
611 if (Opts.CPlusPlus) {
612 Builder.defineMacro(
"__C99FEATURES__");
613 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
616 Builder.defineMacro(
"_LARGEFILE_SOURCE");
617 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
618 Builder.defineMacro(
"__EXTENSIONS__");
619 if (Opts.POSIXThreads)
620 Builder.defineMacro(
"_REENTRANT");
621 if (this->HasFloat128)
622 Builder.defineMacro(
"__FLOAT128__");
628 if (this->PointerWidth == 64) {
629 this->WCharType = this->WIntType = this->SignedInt;
631 this->WCharType = this->WIntType = this->SignedLong;
633 switch (Triple.getArch()) {
636 case llvm::Triple::x86:
637 case llvm::Triple::x86_64:
638 this->HasFloat128 =
true;
645template <
typename Target>
651 Builder.defineMacro(
"_IBMR2");
652 Builder.defineMacro(
"_POWER");
653 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
655 Builder.defineMacro(
"_AIX");
656 Builder.defineMacro(
"__TOS_AIX__");
657 Builder.defineMacro(
"__HOS_AIX__");
660 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
661 Builder.defineMacro(
"__STDC_NO_THREADS__");
664 if (Opts.EnableAIXExtendedAltivecABI)
665 Builder.defineMacro(
"__EXTABI__");
667 VersionTuple OsVersion = Triple.getOSVersion();
671 if (OsVersion >= VersionTuple(3, 2))
672 Builder.defineMacro(
"_AIX32");
673 if (OsVersion >= VersionTuple(4, 1))
674 Builder.defineMacro(
"_AIX41");
675 if (OsVersion >= VersionTuple(4, 3))
676 Builder.defineMacro(
"_AIX43");
677 if (OsVersion >= VersionTuple(5, 0))
678 Builder.defineMacro(
"_AIX50");
679 if (OsVersion >= VersionTuple(5, 1))
680 Builder.defineMacro(
"_AIX51");
681 if (OsVersion >= VersionTuple(5, 2))
682 Builder.defineMacro(
"_AIX52");
683 if (OsVersion >= VersionTuple(5, 3))
684 Builder.defineMacro(
"_AIX53");
685 if (OsVersion >= VersionTuple(6, 1))
686 Builder.defineMacro(
"_AIX61");
687 if (OsVersion >= VersionTuple(7, 1))
688 Builder.defineMacro(
"_AIX71");
689 if (OsVersion >= VersionTuple(7, 2))
690 Builder.defineMacro(
"_AIX72");
691 if (OsVersion >= VersionTuple(7, 3))
692 Builder.defineMacro(
"_AIX73");
695 Builder.defineMacro(
"_LONG_LONG");
697 if (Opts.POSIXThreads) {
698 Builder.defineMacro(
"_THREAD_SAFE");
701 if (this->PointerWidth == 64) {
702 Builder.defineMacro(
"__64BIT__");
707 if (Opts.CPlusPlus && Opts.WChar) {
708 Builder.defineMacro(
"_WCHAR_T");
715 this->MCountName =
"__mcount";
716 this->TheCXXABI.set(TargetCXXABI::XL);
718 if (this->PointerWidth == 64) {
719 this->WCharType = this->UnsignedInt;
721 this->WCharType = this->UnsignedShort;
723 this->UseZeroLengthBitfieldAlignment =
true;
739template <
typename Target>
745 Builder.defineMacro(
"_LONG_LONG");
746 Builder.defineMacro(
"__370__");
747 Builder.defineMacro(
"__BFP__");
749 Builder.defineMacro(
"__BOOL__");
750 Builder.defineMacro(
"__COMPILER_VER__",
"0x50000000");
751 Builder.defineMacro(
"__LONGNAME__");
752 Builder.defineMacro(
"__MVS__");
753 Builder.defineMacro(
"__THW_370__");
754 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
755 Builder.defineMacro(
"__TOS_390__");
756 Builder.defineMacro(
"__TOS_MVS__");
757 Builder.defineMacro(
"__XPLINK__");
759 if (this->PointerWidth == 64)
760 Builder.defineMacro(
"__64BIT__");
762 if (Opts.CPlusPlus && Opts.WChar) {
765 Builder.defineMacro(
"__wchar_t");
768 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
774 this->WCharType = TargetInfo::UnsignedInt;
775 this->MaxAlignedAttribute = 128;
776 this->UseBitFieldTypeAlignment =
false;
777 this->UseZeroLengthBitfieldAlignment =
true;
778 this->UseLeadingZeroLengthBitfield =
false;
779 this->ZeroLengthBitfieldBoundary = 32;
780 this->TheCXXABI.set(TargetCXXABI::XL);
789template <
typename Target>
798 this->WCharType = TargetInfo::UnsignedShort;
799 this->WIntType = TargetInfo::UnsignedShort;
807template <
typename Target>
818 this->WCharType = TargetInfo::UnsignedShort;
819 this->WIntType = TargetInfo::UnsignedShort;
823template <
typename Target>
828 if (Opts.POSIXThreads)
829 Builder.defineMacro(
"_REENTRANT");
831 Builder.defineMacro(
"_GNU_SOURCE");
834 Builder.defineMacro(
"__native_client__");
840 this->LongAlign = 32;
841 this->LongWidth = 32;
842 this->PointerAlign = 32;
843 this->PointerWidth = 32;
844 this->IntMaxType = TargetInfo::SignedLongLong;
845 this->Int64Type = TargetInfo::SignedLongLong;
846 this->DoubleAlign = 64;
847 this->LongDoubleWidth = 64;
848 this->LongDoubleAlign = 64;
849 this->LongLongWidth = 64;
850 this->LongLongAlign = 64;
851 this->SizeType = TargetInfo::UnsignedInt;
852 this->PtrDiffType = TargetInfo::SignedInt;
853 this->IntPtrType = TargetInfo::SignedInt;
855 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
856 if (Triple.getArch() == llvm::Triple::arm) {
858 }
else if (Triple.getArch() == llvm::Triple::x86) {
859 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
860 "i64:64-i128:128-n8:16:32-S128");
861 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
862 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
863 "i64:64-i128:128-n8:16:32:64-S128");
864 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
871template <
typename Target>
876 Builder.defineMacro(
"__Fuchsia__");
877 if (Opts.POSIXThreads)
878 Builder.defineMacro(
"_REENTRANT");
881 Builder.defineMacro(
"_GNU_SOURCE");
882 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
883 this->PlatformName =
"fuchsia";
884 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
890 this->WIntType = TargetInfo::UnsignedInt;
891 this->MCountName =
"__mcount";
892 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
897template <
typename Target>
904 if (Opts.POSIXThreads)
905 Builder.defineMacro(
"_REENTRANT");
908 Builder.defineMacro(
"_GNU_SOURCE");
910 Builder.defineMacro(
"__FLOAT128__");
917 this->MCountName =
"__mcount";
918 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
919 this->HasFloat128 =
true;
924template <
typename Target>
927 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
930 Builder.defineMacro(
"__wasi__");
938template <
typename Target>
941 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
945 Builder.defineMacro(
"__EMSCRIPTEN__");
946 if (Opts.POSIXThreads)
947 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
959 this->LongDoubleAlign = 64;
964template <
typename Target>
973 if (Triple.isOHOSFamily()) {
974 Builder.defineMacro(
"__OHOS_FAMILY__",
"1");
976 auto Version = Triple.getEnvironmentVersion();
977 this->PlatformName =
"ohos";
978 this->PlatformMinVersion = Version;
979 Builder.defineMacro(
"__OHOS_Major__", Twine(Version.getMajor()));
980 if (
auto Minor = Version.getMinor())
981 Builder.defineMacro(
"__OHOS_Minor__", Twine(*Minor));
982 if (
auto Subminor = Version.getSubminor())
983 Builder.defineMacro(
"__OHOS_Micro__", Twine(*Subminor));
986 if (Triple.isOpenHOS())
987 Builder.defineMacro(
"__OHOS__");
989 if (Triple.isOSLinux()) {
991 }
else if (Triple.isOSLiteOS()) {
992 Builder.defineMacro(
"__LITEOS__");
995 if (Opts.POSIXThreads)
996 Builder.defineMacro(
"_REENTRANT");
998 Builder.defineMacro(
"_GNU_SOURCE");
999 if (this->HasFloat128)
1000 Builder.defineMacro(
"__FLOAT128__");
1006 this->WIntType = TargetInfo::UnsignedInt;
1008 switch (Triple.getArch()) {
1011 case llvm::Triple::x86:
1012 case llvm::Triple::x86_64:
1013 this->HasFloat128 =
true;
1019 return ".text.startup";
llvm::MachO::Target Target
#define FREEBSD_CC_VERSION
FPEvalMethodKind
Possible float expression evaluation method choices.
@ FEM_Double
Use the type double for fp arithmetic.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
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
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
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)
const char * getStaticInitSectionSpecifier() const override
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
OHOSTargetInfo(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)
UEFITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
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)
LLVM_LIBRARY_VISIBILITY void DefineStd(clang::MacroBuilder &Builder, llvm::StringRef MacroName, const clang::LangOptions &Opts)
Define a macro name and standard variants.
void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple, StringRef &PlatformName, VersionTuple &PlatformMinVersion)
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T
CallingConv
CallingConv - Specifies the calling convention that a function uses.
IntType
===-— Target Data Type Query Methods ----------------------------—===//