Go to the documentation of this file.
12 #ifndef LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
13 #define LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
20 template <
typename TgtInfo>
23 virtual void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
32 TgtInfo::getTargetDefines(Opts, Builder);
33 getOSDefines(Opts, TgtInfo::getTriple(), Builder);
38 template <
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__");
58 template <
typename Target>
64 Builder.defineMacro(
"__Ananas__");
65 Builder.defineMacro(
"__ELF__");
74 const llvm::Triple &Triple, StringRef &PlatformName,
75 VersionTuple &PlatformMinVersion);
77 template <
typename Target>
83 this->PlatformMinVersion);
91 this->TLSSupported =
false;
93 if (Triple.isMacOSX())
94 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
95 else if (Triple.isiOS()) {
98 if (Triple.isArch64Bit())
99 this->TLSSupported = !Triple.isOSVersionLT(8);
100 else if (Triple.isArch32Bit()) {
101 if (!Triple.isSimulatorEnvironment())
102 this->TLSSupported = !Triple.isOSVersionLT(9);
104 this->TLSSupported = !Triple.isOSVersionLT(10);
106 }
else if (Triple.isWatchOS()) {
107 if (!Triple.isSimulatorEnvironment())
108 this->TLSSupported = !Triple.isOSVersionLT(2);
110 this->TLSSupported = !Triple.isOSVersionLT(3);
111 }
else if (Triple.isDriverKit()) {
115 this->MCountName =
"\01mcount";
120 return "__TEXT,__StaticInit,regular,pure_instructions";
132 llvm::VersionTuple MinVersion;
133 const llvm::Triple &T = this->getTriple();
137 case llvm::Triple::Darwin:
138 case llvm::Triple::MacOSX:
139 MinVersion = llvm::VersionTuple(10
U, 14
U);
141 case llvm::Triple::IOS:
142 case llvm::Triple::TvOS:
143 MinVersion = llvm::VersionTuple(12
U);
145 case llvm::Triple::WatchOS:
146 MinVersion = llvm::VersionTuple(5
U);
153 if (T.getOSVersion() < MinVersion)
159 bool IsSigned)
const final {
161 return BitWidth == 64
169 template <
typename Target>
176 Builder.defineMacro(
"__DragonFly__");
177 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
178 Builder.defineMacro(
"__ELF__");
179 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
180 Builder.defineMacro(
"__tune_i386__");
182 if (this->HasFloat128)
183 Builder.defineMacro(
"__FLOAT128__");
189 switch (Triple.getArch()) {
191 case llvm::Triple::x86:
192 case llvm::Triple::x86_64:
193 this->HasFloat128 =
true;
194 this->MCountName =
".mcount";
200 #ifndef FREEBSD_CC_VERSION
201 #define FREEBSD_CC_VERSION 0U
205 template <
typename Target>
212 unsigned Release = Triple.getOSMajorVersion();
217 CCVersion = Release * 100000
U + 1
U;
219 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
220 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
221 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
223 Builder.defineMacro(
"__ELF__");
234 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
240 switch (Triple.getArch()) {
242 case llvm::Triple::x86:
243 case llvm::Triple::x86_64:
244 this->MCountName =
".mcount";
246 case llvm::Triple::mips:
247 case llvm::Triple::mipsel:
248 case llvm::Triple::ppc:
249 case llvm::Triple::ppcle:
250 case llvm::Triple::ppc64:
251 case llvm::Triple::ppc64le:
252 this->MCountName =
"_mcount";
254 case llvm::Triple::arm:
255 this->MCountName =
"__mcount";
257 case llvm::Triple::riscv32:
258 case llvm::Triple::riscv64:
265 template <
typename Target>
273 Builder.defineMacro(
"__FreeBSD_kernel__");
274 Builder.defineMacro(
"__GLIBC__");
275 Builder.defineMacro(
"__ELF__");
276 if (Opts.POSIXThreads)
277 Builder.defineMacro(
"_REENTRANT");
279 Builder.defineMacro(
"_GNU_SOURCE");
288 template <
typename Target>
294 Builder.defineMacro(
"__HAIKU__");
295 Builder.defineMacro(
"__ELF__");
297 if (this->HasFloat128)
298 Builder.defineMacro(
"__FLOAT128__");
308 this->TLSSupported =
false;
309 switch (Triple.getArch()) {
312 case llvm::Triple::x86:
313 case llvm::Triple::x86_64:
314 this->HasFloat128 =
true;
321 template <
typename Target>
328 Builder.defineMacro(
"__GNU__");
329 Builder.defineMacro(
"__gnu_hurd__");
330 Builder.defineMacro(
"__MACH__");
331 Builder.defineMacro(
"__GLIBC__");
332 Builder.defineMacro(
"__ELF__");
333 if (Opts.POSIXThreads)
334 Builder.defineMacro(
"_REENTRANT");
336 Builder.defineMacro(
"_GNU_SOURCE");
344 template <
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__");
368 template <
typename Target>
376 Builder.defineMacro(
"__ELF__");
377 if (Triple.isAndroid()) {
378 Builder.defineMacro(
"__ANDROID__",
"1");
379 this->PlatformName =
"android";
380 this->PlatformMinVersion = Triple.getEnvironmentVersion();
381 const unsigned Maj = this->PlatformMinVersion.getMajor();
383 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
386 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
389 Builder.defineMacro(
"__gnu_linux__");
391 if (Opts.POSIXThreads)
392 Builder.defineMacro(
"_REENTRANT");
394 Builder.defineMacro(
"_GNU_SOURCE");
395 if (this->HasFloat128)
396 Builder.defineMacro(
"__FLOAT128__");
404 switch (Triple.getArch()) {
407 case llvm::Triple::mips:
408 case llvm::Triple::mipsel:
409 case llvm::Triple::mips64:
410 case llvm::Triple::mips64el:
411 case llvm::Triple::ppc:
412 case llvm::Triple::ppcle:
413 case llvm::Triple::ppc64:
414 case llvm::Triple::ppc64le:
415 this->MCountName =
"_mcount";
417 case llvm::Triple::x86:
418 case llvm::Triple::x86_64:
419 this->HasFloat128 =
true;
425 return ".text.startup";
430 template <
typename Target>
436 Builder.defineMacro(
"__NetBSD__");
437 Builder.defineMacro(
"__unix__");
438 Builder.defineMacro(
"__ELF__");
439 if (Opts.POSIXThreads)
440 Builder.defineMacro(
"_REENTRANT");
446 this->MCountName =
"__mcount";
451 template <
typename Target>
458 Builder.defineMacro(
"__OpenBSD__");
460 Builder.defineMacro(
"__ELF__");
461 if (Opts.POSIXThreads)
462 Builder.defineMacro(
"_REENTRANT");
463 if (this->HasFloat128)
464 Builder.defineMacro(
"__FLOAT128__");
467 Builder.defineMacro(
"__STDC_NO_THREADS__");
473 this->WCharType = this->WIntType = this->SignedInt;
476 switch (Triple.getArch()) {
477 case llvm::Triple::x86:
478 case llvm::Triple::x86_64:
479 this->HasFloat128 =
true;
482 this->MCountName =
"__mcount";
484 case llvm::Triple::mips64:
485 case llvm::Triple::mips64el:
486 case llvm::Triple::ppc:
487 case llvm::Triple::ppc64:
488 case llvm::Triple::ppc64le:
489 case llvm::Triple::sparcv9:
490 this->MCountName =
"_mcount";
492 case llvm::Triple::riscv32:
493 case llvm::Triple::riscv64:
500 template <
typename Target>
506 Builder.defineMacro(
"PSP");
507 Builder.defineMacro(
"_PSP");
508 Builder.defineMacro(
"__psp__");
509 Builder.defineMacro(
"__ELF__");
517 template <
typename Target>
523 Builder.defineMacro(
"__PPC__");
524 Builder.defineMacro(
"__PPU__");
525 Builder.defineMacro(
"__CELLOS_LV2__");
526 Builder.defineMacro(
"__ELF__");
527 Builder.defineMacro(
"__LP32__");
528 Builder.defineMacro(
"_ARCH_PPC64");
529 Builder.defineMacro(
"__powerpc64__");
535 this->LongWidth = this->LongAlign = 32;
536 this->PointerWidth = this->PointerAlign = 32;
540 this->resetDataLayout(
"E-m:e-p:32:32-i64:64-n32:64");
544 template <
typename Target>
549 Builder.defineMacro(
"__FreeBSD__",
"9");
550 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
551 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
553 Builder.defineMacro(
"__ELF__");
554 Builder.defineMacro(
"__SCE__");
555 Builder.defineMacro(
"__ORBIS__");
564 this->MaxTLSAlign = 256;
568 this->UseExplicitBitFieldAlignment =
false;
570 switch (Triple.getArch()) {
572 case llvm::Triple::x86_64:
573 this->MCountName =
".mcount";
574 this->NewAlign = 256;
575 this->SuitableAlign = 256;
586 template <
typename Target>
593 Builder.defineMacro(
"__rtems__");
594 Builder.defineMacro(
"__ELF__");
596 Builder.defineMacro(
"_GNU_SOURCE");
602 switch (Triple.getArch()) {
604 case llvm::Triple::x86:
607 case llvm::Triple::mips:
608 case llvm::Triple::mipsel:
609 case llvm::Triple::ppc:
610 case llvm::Triple::ppc64:
611 case llvm::Triple::ppc64le:
614 case llvm::Triple::arm:
622 template <
typename Target>
629 Builder.defineMacro(
"__ELF__");
630 Builder.defineMacro(
"__svr4__");
631 Builder.defineMacro(
"__SVR4");
637 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
639 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
640 if (Opts.CPlusPlus) {
641 Builder.defineMacro(
"__C99FEATURES__");
642 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
645 Builder.defineMacro(
"_LARGEFILE_SOURCE");
646 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
647 Builder.defineMacro(
"__EXTENSIONS__");
648 if (Opts.POSIXThreads)
649 Builder.defineMacro(
"_REENTRANT");
650 if (this->HasFloat128)
651 Builder.defineMacro(
"__FLOAT128__");
657 if (this->PointerWidth == 64) {
658 this->WCharType = this->WIntType = this->SignedInt;
660 this->WCharType = this->WIntType = this->
SignedLong;
662 switch (Triple.getArch()) {
665 case llvm::Triple::x86:
666 case llvm::Triple::x86_64:
667 this->HasFloat128 =
true;
674 template <
typename Target>
680 Builder.defineMacro(
"_IBMR2");
681 Builder.defineMacro(
"_POWER");
682 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
684 Builder.defineMacro(
"_AIX");
685 Builder.defineMacro(
"__TOS_AIX__");
686 Builder.defineMacro(
"__HOS_AIX__");
689 Builder.defineMacro(
"__STDC_NO_ATOMICS__");
690 Builder.defineMacro(
"__STDC_NO_THREADS__");
693 if (Opts.EnableAIXExtendedAltivecABI)
694 Builder.defineMacro(
"__EXTABI__");
696 VersionTuple OsVersion = Triple.getOSVersion();
700 if (OsVersion >= VersionTuple(3, 2))
701 Builder.defineMacro(
"_AIX32");
702 if (OsVersion >= VersionTuple(4, 1))
703 Builder.defineMacro(
"_AIX41");
704 if (OsVersion >= VersionTuple(4, 3))
705 Builder.defineMacro(
"_AIX43");
706 if (OsVersion >= VersionTuple(5, 0))
707 Builder.defineMacro(
"_AIX50");
708 if (OsVersion >= VersionTuple(5, 1))
709 Builder.defineMacro(
"_AIX51");
710 if (OsVersion >= VersionTuple(5, 2))
711 Builder.defineMacro(
"_AIX52");
712 if (OsVersion >= VersionTuple(5, 3))
713 Builder.defineMacro(
"_AIX53");
714 if (OsVersion >= VersionTuple(6, 1))
715 Builder.defineMacro(
"_AIX61");
716 if (OsVersion >= VersionTuple(7, 1))
717 Builder.defineMacro(
"_AIX71");
718 if (OsVersion >= VersionTuple(7, 2))
719 Builder.defineMacro(
"_AIX72");
720 if (OsVersion >= VersionTuple(7, 3))
721 Builder.defineMacro(
"_AIX73");
724 Builder.defineMacro(
"_LONG_LONG");
726 if (Opts.POSIXThreads) {
727 Builder.defineMacro(
"_THREAD_SAFE");
730 if (this->PointerWidth == 64) {
731 Builder.defineMacro(
"__64BIT__");
736 if (Opts.CPlusPlus && Opts.WChar) {
737 Builder.defineMacro(
"_WCHAR_T");
744 this->TheCXXABI.set(TargetCXXABI::XL);
746 if (this->PointerWidth == 64) {
747 this->WCharType = this->UnsignedInt;
749 this->WCharType = this->UnsignedShort;
751 this->UseZeroLengthBitfieldAlignment =
true;
756 return LangOptions::FPEvalMethodKind::FEM_Double;
763 template <
typename Target>
769 Builder.defineMacro(
"_LONG_LONG");
770 Builder.defineMacro(
"_OPEN_DEFAULT");
772 Builder.defineMacro(
"_UNIX03_WITHDRAWN");
773 Builder.defineMacro(
"__370__");
774 Builder.defineMacro(
"__BFP__");
776 Builder.defineMacro(
"__BOOL__");
777 Builder.defineMacro(
"__LONGNAME__");
778 Builder.defineMacro(
"__MVS__");
779 Builder.defineMacro(
"__THW_370__");
780 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
781 Builder.defineMacro(
"__TOS_390__");
782 Builder.defineMacro(
"__TOS_MVS__");
783 Builder.defineMacro(
"__XPLINK__");
785 if (this->PointerWidth == 64)
786 Builder.defineMacro(
"__64BIT__");
788 if (Opts.CPlusPlus) {
789 Builder.defineMacro(
"__DLL__");
791 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
795 Builder.defineMacro(
"_MI_BUILTIN");
796 Builder.defineMacro(
"_EXT");
799 if (Opts.CPlusPlus && Opts.WChar) {
802 Builder.defineMacro(
"__wchar_t");
805 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
812 this->MaxAlignedAttribute = 128;
813 this->UseBitFieldTypeAlignment =
false;
814 this->UseZeroLengthBitfieldAlignment =
true;
815 this->UseLeadingZeroLengthBitfield =
false;
816 this->ZeroLengthBitfieldBoundary = 32;
824 template <
typename Target>
840 template <
typename Target>
845 if (Opts.POSIXThreads)
846 Builder.defineMacro(
"_REENTRANT");
848 Builder.defineMacro(
"_GNU_SOURCE");
851 Builder.defineMacro(
"__ELF__");
852 Builder.defineMacro(
"__native_client__");
858 this->LongAlign = 32;
859 this->LongWidth = 32;
860 this->PointerAlign = 32;
861 this->PointerWidth = 32;
864 this->DoubleAlign = 64;
865 this->LongDoubleWidth = 64;
866 this->LongDoubleAlign = 64;
867 this->LongLongWidth = 64;
868 this->LongLongAlign = 64;
873 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
874 if (Triple.getArch() == llvm::Triple::arm) {
876 }
else if (Triple.getArch() == llvm::Triple::x86) {
877 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
878 "i64:64-n8:16:32-S128");
879 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
880 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
881 "i64:64-n8:16:32:64-S128");
882 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
885 assert(Triple.getArch() == llvm::Triple::le32);
886 this->resetDataLayout(
"e-p:32:32-i64:64");
892 template <
typename Target>
897 Builder.defineMacro(
"__Fuchsia__");
898 Builder.defineMacro(
"__ELF__");
899 if (Opts.POSIXThreads)
900 Builder.defineMacro(
"_REENTRANT");
903 Builder.defineMacro(
"_GNU_SOURCE");
904 Builder.defineMacro(
"__Fuchsia_API_level__", Twine(Opts.FuchsiaAPILevel));
905 this->PlatformName =
"fuchsia";
906 this->PlatformMinVersion = VersionTuple(Opts.FuchsiaAPILevel);
912 this->MCountName =
"__mcount";
913 this->TheCXXABI.set(TargetCXXABI::Fuchsia);
918 template <
typename Target>
925 if (Opts.POSIXThreads)
926 Builder.defineMacro(
"_REENTRANT");
929 Builder.defineMacro(
"_GNU_SOURCE");
931 Builder.defineMacro(
"__FLOAT128__");
938 this->MCountName =
"__mcount";
939 this->TheCXXABI.set(TargetCXXABI::WebAssembly);
940 this->HasFloat128 =
true;
945 template <
typename Target>
948 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
951 Builder.defineMacro(
"__wasi__");
960 template <
typename Target>
963 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
967 Builder.defineMacro(
"__EMSCRIPTEN__");
968 if (Opts.POSIXThreads)
969 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
981 this->LongDoubleAlign = 64;
987 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H
PS3PPUTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override
SolarisTargetInfo(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
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
WASITargetInfo(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
void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple, StringRef &PlatformName, VersionTuple &PlatformMinVersion)
RTEMSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
TargetInfo::IntType getLeastIntTypeByWidth(unsigned BitWidth, bool IsSigned) const final
OpenBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
LinuxTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
PSPTargetInfo(const llvm::Triple &Triple)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
bool hasProtectedVisibility() const override
Darwin does not support protected visibility.
const char * getStaticInitSectionSpecifier() const override
AIXTargetInfo(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
NaClTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
FPEvalMethodKind
Possible float expression evaluation method choices.
void DefineStd(MacroBuilder &Builder, StringRef MacroName, const LangOptions &Opts)
DefineStd - Define a macro name and standard variants.
FreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
CallingConv
CallingConv - Specifies the calling convention that a function uses.
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
virtual IntType getLeastIntTypeByWidth(unsigned BitWidth, bool IsSigned) const
Return the smallest integer type with at least the specified width.
WebAssemblyOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
FuchsiaTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
ZOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
NetBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
DarwinTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
TargetInfo::CallingConvCheckResult checkCallingConvention(CallingConv CC) const override
AnanasTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
KFreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
WindowsTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
PS4OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
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
bool defaultsToAIXPowerAlignment() 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
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
IntType
===-— Target Data Type Query Methods ----------------------------—===//
#define FREEBSD_CC_VERSION
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
MinixTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
HurdTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
DragonFlyBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
LangOptions::FPEvalMethodKind getFPEvalMethod() const override
Options for controlling the target.
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
EmscriptenTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void addWindowsDefines(const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder)
unsigned getExnObjectAlignment() 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
CloudABITargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)