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
16 #include "llvm/MC/MCSectionMachO.h"
21 template <
typename TgtInfo>
24 virtual void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
33 TgtInfo::getTargetDefines(Opts, Builder);
34 getOSDefines(Opts, TgtInfo::getTriple(), Builder);
39 template <
typename Target>
44 Builder.defineMacro(
"__CloudABI__");
45 Builder.defineMacro(
"__ELF__");
48 Builder.defineMacro(
"__STDC_ISO_10646__",
"201206L");
49 Builder.defineMacro(
"__STDC_UTF_16__");
50 Builder.defineMacro(
"__STDC_UTF_32__");
59 template <
typename Target>
65 Builder.defineMacro(
"__Ananas__");
66 Builder.defineMacro(
"__ELF__");
75 const llvm::Triple &Triple, StringRef &PlatformName,
76 VersionTuple &PlatformMinVersion);
78 template <
typename Target>
84 this->PlatformMinVersion);
92 this->TLSSupported =
false;
94 if (Triple.isMacOSX())
95 this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
96 else if (Triple.isiOS()) {
99 if (Triple.isArch64Bit())
100 this->TLSSupported = !Triple.isOSVersionLT(8);
101 else if (Triple.isArch32Bit()) {
102 if (!Triple.isSimulatorEnvironment())
103 this->TLSSupported = !Triple.isOSVersionLT(9);
105 this->TLSSupported = !Triple.isOSVersionLT(10);
107 }
else if (Triple.isWatchOS()) {
108 if (!Triple.isSimulatorEnvironment())
109 this->TLSSupported = !Triple.isOSVersionLT(2);
111 this->TLSSupported = !Triple.isOSVersionLT(3);
114 this->MCountName =
"\01mcount";
119 StringRef Segment, Section;
120 unsigned TAA, StubSize;
122 return llvm::MCSectionMachO::ParseSectionSpecifier(SR, Segment, Section,
123 TAA, HasTAA, StubSize);
128 return "__TEXT,__StaticInit,regular,pure_instructions";
140 llvm::VersionTuple MinVersion;
141 const llvm::Triple &T = this->getTriple();
145 case llvm::Triple::Darwin:
146 case llvm::Triple::MacOSX:
147 MinVersion = llvm::VersionTuple(10
U, 14
U);
149 case llvm::Triple::IOS:
150 case llvm::Triple::TvOS:
151 MinVersion = llvm::VersionTuple(12
U);
153 case llvm::Triple::WatchOS:
154 MinVersion = llvm::VersionTuple(5
U);
161 unsigned Major, Minor, Micro;
162 T.getOSVersion(Major, Minor, Micro);
163 if (llvm::VersionTuple(Major, Minor, Micro) < MinVersion)
169 bool IsSigned)
const final {
171 return BitWidth == 64
179 template <
typename Target>
186 Builder.defineMacro(
"__DragonFly__");
187 Builder.defineMacro(
"__DragonFly_cc_version",
"100001");
188 Builder.defineMacro(
"__ELF__");
189 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
190 Builder.defineMacro(
"__tune_i386__");
197 switch (Triple.getArch()) {
199 case llvm::Triple::x86:
200 case llvm::Triple::x86_64:
201 this->MCountName =
".mcount";
207 #ifndef FREEBSD_CC_VERSION
208 #define FREEBSD_CC_VERSION 0U
212 template <
typename Target>
219 unsigned Release = Triple.getOSMajorVersion();
224 CCVersion = Release * 100000
U + 1
U;
226 Builder.defineMacro(
"__FreeBSD__", Twine(Release));
227 Builder.defineMacro(
"__FreeBSD_cc_version", Twine(CCVersion));
228 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
230 Builder.defineMacro(
"__ELF__");
241 Builder.defineMacro(
"__STDC_MB_MIGHT_NEQ_WC__",
"1");
247 switch (Triple.getArch()) {
249 case llvm::Triple::x86:
250 case llvm::Triple::x86_64:
251 this->MCountName =
".mcount";
253 case llvm::Triple::mips:
254 case llvm::Triple::mipsel:
255 case llvm::Triple::ppc:
256 case llvm::Triple::ppcle:
257 case llvm::Triple::ppc64:
258 case llvm::Triple::ppc64le:
259 this->MCountName =
"_mcount";
261 case llvm::Triple::arm:
262 this->MCountName =
"__mcount";
264 case llvm::Triple::riscv32:
265 case llvm::Triple::riscv64:
272 template <
typename Target>
280 Builder.defineMacro(
"__FreeBSD_kernel__");
281 Builder.defineMacro(
"__GLIBC__");
282 Builder.defineMacro(
"__ELF__");
283 if (Opts.POSIXThreads)
284 Builder.defineMacro(
"_REENTRANT");
286 Builder.defineMacro(
"_GNU_SOURCE");
295 template <
typename Target>
301 Builder.defineMacro(
"__HAIKU__");
302 Builder.defineMacro(
"__ELF__");
304 if (this->HasFloat128)
305 Builder.defineMacro(
"__FLOAT128__");
315 this->TLSSupported =
false;
316 switch (Triple.getArch()) {
319 case llvm::Triple::x86:
320 case llvm::Triple::x86_64:
321 this->HasFloat128 =
true;
328 template <
typename Target>
335 Builder.defineMacro(
"__GNU__");
336 Builder.defineMacro(
"__gnu_hurd__");
337 Builder.defineMacro(
"__MACH__");
338 Builder.defineMacro(
"__GLIBC__");
339 Builder.defineMacro(
"__ELF__");
340 if (Opts.POSIXThreads)
341 Builder.defineMacro(
"_REENTRANT");
343 Builder.defineMacro(
"_GNU_SOURCE");
351 template <
typename Target>
358 Builder.defineMacro(
"__minix",
"3");
359 Builder.defineMacro(
"_EM_WSIZE",
"4");
360 Builder.defineMacro(
"_EM_PSIZE",
"4");
361 Builder.defineMacro(
"_EM_SSIZE",
"2");
362 Builder.defineMacro(
"_EM_LSIZE",
"4");
363 Builder.defineMacro(
"_EM_FSIZE",
"4");
364 Builder.defineMacro(
"_EM_DSIZE",
"8");
365 Builder.defineMacro(
"__ELF__");
375 template <
typename Target>
383 Builder.defineMacro(
"__ELF__");
384 if (Triple.isAndroid()) {
385 Builder.defineMacro(
"__ANDROID__",
"1");
386 unsigned Maj, Min, Rev;
387 Triple.getEnvironmentVersion(Maj, Min, Rev);
388 this->PlatformName =
"android";
389 this->PlatformMinVersion = VersionTuple(Maj, Min, Rev);
391 Builder.defineMacro(
"__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
394 Builder.defineMacro(
"__ANDROID_API__",
"__ANDROID_MIN_SDK_VERSION__");
397 Builder.defineMacro(
"__gnu_linux__");
399 if (Opts.POSIXThreads)
400 Builder.defineMacro(
"_REENTRANT");
402 Builder.defineMacro(
"_GNU_SOURCE");
403 if (this->HasFloat128)
404 Builder.defineMacro(
"__FLOAT128__");
412 switch (Triple.getArch()) {
415 case llvm::Triple::mips:
416 case llvm::Triple::mipsel:
417 case llvm::Triple::mips64:
418 case llvm::Triple::mips64el:
419 case llvm::Triple::ppc:
420 case llvm::Triple::ppcle:
421 case llvm::Triple::ppc64:
422 case llvm::Triple::ppc64le:
423 this->MCountName =
"_mcount";
425 case llvm::Triple::x86:
426 case llvm::Triple::x86_64:
427 this->HasFloat128 =
true;
433 return ".text.startup";
438 template <
typename Target>
444 Builder.defineMacro(
"__NetBSD__");
445 Builder.defineMacro(
"__unix__");
446 Builder.defineMacro(
"__ELF__");
447 if (Opts.POSIXThreads)
448 Builder.defineMacro(
"_REENTRANT");
454 this->MCountName =
"__mcount";
459 template <
typename Target>
466 Builder.defineMacro(
"__OpenBSD__");
468 Builder.defineMacro(
"__ELF__");
469 if (Opts.POSIXThreads)
470 Builder.defineMacro(
"_REENTRANT");
471 if (this->HasFloat128)
472 Builder.defineMacro(
"__FLOAT128__");
478 this->WCharType = this->WIntType = this->SignedInt;
481 switch (Triple.getArch()) {
482 case llvm::Triple::x86:
483 case llvm::Triple::x86_64:
484 this->HasFloat128 =
true;
487 this->MCountName =
"__mcount";
489 case llvm::Triple::mips64:
490 case llvm::Triple::mips64el:
491 case llvm::Triple::ppc:
492 case llvm::Triple::ppc64:
493 case llvm::Triple::ppc64le:
494 case llvm::Triple::sparcv9:
495 this->MCountName =
"_mcount";
497 case llvm::Triple::riscv32:
498 case llvm::Triple::riscv64:
505 template <
typename Target>
511 Builder.defineMacro(
"PSP");
512 Builder.defineMacro(
"_PSP");
513 Builder.defineMacro(
"__psp__");
514 Builder.defineMacro(
"__ELF__");
522 template <
typename Target>
528 Builder.defineMacro(
"__PPC__");
529 Builder.defineMacro(
"__PPU__");
530 Builder.defineMacro(
"__CELLOS_LV2__");
531 Builder.defineMacro(
"__ELF__");
532 Builder.defineMacro(
"__LP32__");
533 Builder.defineMacro(
"_ARCH_PPC64");
534 Builder.defineMacro(
"__powerpc64__");
540 this->LongWidth = this->LongAlign = 32;
541 this->PointerWidth = this->PointerAlign = 32;
545 this->resetDataLayout(
"E-m:e-p:32:32-i64:64-n32:64");
549 template <
typename Target>
554 Builder.defineMacro(
"__FreeBSD__",
"9");
555 Builder.defineMacro(
"__FreeBSD_cc_version",
"900001");
556 Builder.defineMacro(
"__KPRINTF_ATTRIBUTE__");
558 Builder.defineMacro(
"__ELF__");
559 Builder.defineMacro(
"__SCE__");
560 Builder.defineMacro(
"__ORBIS__");
569 this->MaxTLSAlign = 256;
573 this->UseExplicitBitFieldAlignment =
false;
575 switch (Triple.getArch()) {
577 case llvm::Triple::x86_64:
578 this->MCountName =
".mcount";
579 this->NewAlign = 256;
590 template <
typename Target>
597 Builder.defineMacro(
"__rtems__");
598 Builder.defineMacro(
"__ELF__");
600 Builder.defineMacro(
"_GNU_SOURCE");
606 switch (Triple.getArch()) {
608 case llvm::Triple::x86:
611 case llvm::Triple::mips:
612 case llvm::Triple::mipsel:
613 case llvm::Triple::ppc:
614 case llvm::Triple::ppc64:
615 case llvm::Triple::ppc64le:
618 case llvm::Triple::arm:
626 template <
typename Target>
633 Builder.defineMacro(
"__ELF__");
634 Builder.defineMacro(
"__svr4__");
635 Builder.defineMacro(
"__SVR4");
641 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
643 Builder.defineMacro(
"_XOPEN_SOURCE",
"500");
644 if (Opts.CPlusPlus) {
645 Builder.defineMacro(
"__C99FEATURES__");
646 Builder.defineMacro(
"_FILE_OFFSET_BITS",
"64");
649 Builder.defineMacro(
"_LARGEFILE_SOURCE");
650 Builder.defineMacro(
"_LARGEFILE64_SOURCE");
651 Builder.defineMacro(
"__EXTENSIONS__");
652 if (Opts.POSIXThreads)
653 Builder.defineMacro(
"_REENTRANT");
654 if (this->HasFloat128)
655 Builder.defineMacro(
"__FLOAT128__");
661 if (this->PointerWidth == 64) {
662 this->WCharType = this->WIntType = this->SignedInt;
664 this->WCharType = this->WIntType = this->SignedLong;
666 switch (Triple.getArch()) {
669 case llvm::Triple::x86:
670 case llvm::Triple::x86_64:
671 this->HasFloat128 =
true;
678 template <
typename Target>
684 Builder.defineMacro(
"_IBMR2");
685 Builder.defineMacro(
"_POWER");
687 Builder.defineMacro(
"_AIX");
689 if (Opts.EnableAIXExtendedAltivecABI)
690 Builder.defineMacro(
"__EXTABI__");
692 unsigned Major, Minor, Micro;
693 Triple.getOSVersion(Major, Minor, Micro);
697 std::pair<int, int> OsVersion = {Major, Minor};
698 if (OsVersion >= std::make_pair(3, 2)) Builder.defineMacro(
"_AIX32");
699 if (OsVersion >= std::make_pair(4, 1)) Builder.defineMacro(
"_AIX41");
700 if (OsVersion >= std::make_pair(4, 3)) Builder.defineMacro(
"_AIX43");
701 if (OsVersion >= std::make_pair(5, 0)) Builder.defineMacro(
"_AIX50");
702 if (OsVersion >= std::make_pair(5, 1)) Builder.defineMacro(
"_AIX51");
703 if (OsVersion >= std::make_pair(5, 2)) Builder.defineMacro(
"_AIX52");
704 if (OsVersion >= std::make_pair(5, 3)) Builder.defineMacro(
"_AIX53");
705 if (OsVersion >= std::make_pair(6, 1)) Builder.defineMacro(
"_AIX61");
706 if (OsVersion >= std::make_pair(7, 1)) Builder.defineMacro(
"_AIX71");
707 if (OsVersion >= std::make_pair(7, 2)) Builder.defineMacro(
"_AIX72");
710 Builder.defineMacro(
"_LONG_LONG");
712 if (Opts.POSIXThreads) {
713 Builder.defineMacro(
"_THREAD_SAFE");
716 if (this->PointerWidth == 64) {
717 Builder.defineMacro(
"__64BIT__");
722 if (Opts.CPlusPlus && Opts.WChar) {
723 Builder.defineMacro(
"_WCHAR_T");
732 if (this->PointerWidth == 64) {
733 this->WCharType = this->UnsignedInt;
735 this->WCharType = this->UnsignedShort;
737 this->UseZeroLengthBitfieldAlignment =
true;
748 template <
typename Target>
754 Builder.defineMacro(
"_LONG_LONG");
755 Builder.defineMacro(
"_OPEN_DEFAULT");
757 Builder.defineMacro(
"_UNIX03_WITHDRAWN");
758 Builder.defineMacro(
"__370__");
759 Builder.defineMacro(
"__BFP__");
761 Builder.defineMacro(
"__BOOL__");
762 Builder.defineMacro(
"__LONGNAME__");
763 Builder.defineMacro(
"__MVS__");
764 Builder.defineMacro(
"__THW_370__");
765 Builder.defineMacro(
"__THW_BIG_ENDIAN__");
766 Builder.defineMacro(
"__TOS_390__");
767 Builder.defineMacro(
"__TOS_MVS__");
768 Builder.defineMacro(
"__XPLINK__");
770 if (this->PointerWidth == 64)
771 Builder.defineMacro(
"__64BIT__");
773 if (Opts.CPlusPlus) {
774 Builder.defineMacro(
"__DLL__");
776 Builder.defineMacro(
"_XOPEN_SOURCE",
"600");
780 Builder.defineMacro(
"_MI_BUILTIN");
781 Builder.defineMacro(
"_EXT");
784 if (Opts.CPlusPlus && Opts.WChar) {
787 Builder.defineMacro(
"__wchar_t");
790 this->PlatformName = llvm::Triple::getOSTypeName(Triple.getOS());
797 this->MaxAlignedAttribute = 128;
798 this->UseBitFieldTypeAlignment =
false;
799 this->UseZeroLengthBitfieldAlignment =
true;
800 this->UseLeadingZeroLengthBitfield =
false;
801 this->ZeroLengthBitfieldBoundary = 32;
802 this->MinGlobalAlign = 0;
803 this->DefaultAlignForAttributeAligned = 128;
811 template <
typename Target>
827 template <
typename Target>
832 if (Opts.POSIXThreads)
833 Builder.defineMacro(
"_REENTRANT");
835 Builder.defineMacro(
"_GNU_SOURCE");
838 Builder.defineMacro(
"__ELF__");
839 Builder.defineMacro(
"__native_client__");
845 this->LongAlign = 32;
846 this->LongWidth = 32;
847 this->PointerAlign = 32;
848 this->PointerWidth = 32;
851 this->DoubleAlign = 64;
852 this->LongDoubleWidth = 64;
853 this->LongDoubleAlign = 64;
854 this->LongLongWidth = 64;
855 this->LongLongAlign = 64;
860 this->LongDoubleFormat = &llvm::APFloat::IEEEdouble();
861 if (Triple.getArch() == llvm::Triple::arm) {
863 }
else if (Triple.getArch() == llvm::Triple::x86) {
864 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
865 "i64:64-n8:16:32-S128");
866 }
else if (Triple.getArch() == llvm::Triple::x86_64) {
867 this->resetDataLayout(
"e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-"
868 "i64:64-n8:16:32:64-S128");
869 }
else if (Triple.getArch() == llvm::Triple::mipsel) {
872 assert(Triple.getArch() == llvm::Triple::le32);
873 this->resetDataLayout(
"e-p:32:32-i64:64");
879 template <
typename Target>
884 Builder.defineMacro(
"__Fuchsia__");
885 Builder.defineMacro(
"__ELF__");
886 if (Opts.POSIXThreads)
887 Builder.defineMacro(
"_REENTRANT");
890 Builder.defineMacro(
"_GNU_SOURCE");
896 this->MCountName =
"__mcount";
902 template <
typename Target>
909 if (Opts.POSIXThreads)
910 Builder.defineMacro(
"_REENTRANT");
913 Builder.defineMacro(
"_GNU_SOURCE");
915 Builder.defineMacro(
"__FLOAT128__");
922 this->MCountName =
"__mcount";
924 this->HasFloat128 =
true;
929 template <
typename Target>
932 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
935 Builder.defineMacro(
"__wasi__");
944 template <
typename Target>
947 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
950 Builder.defineMacro(
"__EMSCRIPTEN__");
951 if (Opts.POSIXThreads)
952 Builder.defineMacro(
"__EMSCRIPTEN_PTHREADS__");
962 #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
bool hasInt128Type() 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
unsigned getFloatEvalMethod() 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
@ WebAssembly
The WebAssembly ABI is a modified version of the Itanium ABI.
void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, MacroBuilder &Builder) const override
NaClTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
void DefineStd(MacroBuilder &Builder, StringRef MacroName, const LangOptions &Opts)
DefineStd - Define a macro name and standard variants.
llvm::Error isValidSectionSpecifier(StringRef SR) const override
FreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
CallingConv
CallingConv - Specifies the calling convention that a function uses.
@ XL
The XL ABI is the ABI used by IBM xlclang compiler and is a modified version of the Itanium ABI.
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
@ Fuchsia
The Fuchsia ABI is a modified version of the Itanium ABI.
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
Dataflow Directional Tag Classes.
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)
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)