Lines Matching refs:Builder
44 static void DefineStd(MacroBuilder &Builder, StringRef MacroName,
51 Builder.defineMacro(MacroName);
54 Builder.defineMacro("__" + MacroName);
57 Builder.defineMacro("__" + MacroName + "__");
60 static void defineCPUMacros(MacroBuilder &Builder, StringRef CPUName,
62 Builder.defineMacro("__" + CPUName);
63 Builder.defineMacro("__" + CPUName + "__");
65 Builder.defineMacro("__tune_" + CPUName + "__");
77 MacroBuilder &Builder) const=0;
81 MacroBuilder &Builder) const override {
82 TgtInfo::getTargetDefines(Opts, Builder);
83 getOSDefines(Opts, TgtInfo::getTriple(), Builder);
93 MacroBuilder &Builder) const override {
94 Builder.defineMacro("__CloudABI__");
95 Builder.defineMacro("__ELF__");
98 Builder.defineMacro("__STDC_ISO_10646__", "201206L");
99 Builder.defineMacro("__STDC_UTF_16__");
100 Builder.defineMacro("__STDC_UTF_32__");
110 static void getDarwinDefines(MacroBuilder &Builder, const LangOptions &Opts,
114 Builder.defineMacro("__APPLE_CC__", "6000");
115 Builder.defineMacro("__APPLE__");
116 Builder.defineMacro("OBJC_NEW_PROPERTIES");
120 Builder.defineMacro("_FORTIFY_SOURCE", "0");
125 Builder.defineMacro("__weak", "__attribute__((objc_gc(weak)))");
126 Builder.defineMacro("__strong", "");
127 Builder.defineMacro("__unsafe_unretained", "");
131 Builder.defineMacro("__STATIC__");
133 Builder.defineMacro("__DYNAMIC__");
136 Builder.defineMacro("_REENTRANT");
167 Builder.defineMacro("__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__", Str);
169 Builder.defineMacro("__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__",
181 Builder.defineMacro("__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__", Str);
205 Builder.defineMacro("__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__", Str);
210 Builder.defineMacro("__MACH__");
219 MacroBuilder &Builder) const override {
220 getDarwinDefines(Builder, Opts, Triple, this->PlatformName,
258 MacroBuilder &Builder) const override {
260 Builder.defineMacro("__DragonFly__");
261 Builder.defineMacro("__DragonFly_cc_version", "100001");
262 Builder.defineMacro("__ELF__");
263 Builder.defineMacro("__KPRINTF_ATTRIBUTE__");
264 Builder.defineMacro("__tune_i386__");
265 DefineStd(Builder, "unix", Opts);
287 MacroBuilder &Builder) const override {
294 Builder.defineMacro("__FreeBSD__", Twine(Release));
295 Builder.defineMacro("__FreeBSD_cc_version", Twine(Release * 100000U + 1U));
296 Builder.defineMacro("__KPRINTF_ATTRIBUTE__");
297 DefineStd(Builder, "unix", Opts);
298 Builder.defineMacro("__ELF__");
309 Builder.defineMacro("__STDC_MB_MIGHT_NEQ_WC__", "1");
340 MacroBuilder &Builder) const override {
343 DefineStd(Builder, "unix", Opts);
344 Builder.defineMacro("__FreeBSD_kernel__");
345 Builder.defineMacro("__GLIBC__");
346 Builder.defineMacro("__ELF__");
348 Builder.defineMacro("_REENTRANT");
350 Builder.defineMacro("_GNU_SOURCE");
364 MacroBuilder &Builder) const override {
367 Builder.defineMacro("__minix", "3");
368 Builder.defineMacro("_EM_WSIZE", "4");
369 Builder.defineMacro("_EM_PSIZE", "4");
370 Builder.defineMacro("_EM_SSIZE", "2");
371 Builder.defineMacro("_EM_LSIZE", "4");
372 Builder.defineMacro("_EM_FSIZE", "4");
373 Builder.defineMacro("_EM_DSIZE", "8");
374 Builder.defineMacro("__ELF__");
375 DefineStd(Builder, "unix", Opts);
388 MacroBuilder &Builder) const override {
390 DefineStd(Builder, "unix", Opts);
391 DefineStd(Builder, "linux", Opts);
392 Builder.defineMacro("__gnu_linux__");
393 Builder.defineMacro("__ELF__");
395 Builder.defineMacro("__ANDROID__", "1");
402 Builder.defineMacro("_REENTRANT");
404 Builder.defineMacro("_GNU_SOURCE");
432 MacroBuilder &Builder) const override {
434 Builder.defineMacro("__NetBSD__");
435 Builder.defineMacro("__unix__");
436 Builder.defineMacro("__ELF__");
438 Builder.defineMacro("_POSIX_THREADS");
447 Builder.defineMacro("__ARM_DWARF_EH__");
463 MacroBuilder &Builder) const override {
466 Builder.defineMacro("__OpenBSD__");
467 DefineStd(Builder, "unix", Opts);
468 Builder.defineMacro("__ELF__");
470 Builder.defineMacro("_REENTRANT");
500 MacroBuilder &Builder) const override {
503 Builder.defineMacro("__Bitrig__");
504 DefineStd(Builder, "unix", Opts);
505 Builder.defineMacro("__ELF__");
507 Builder.defineMacro("_REENTRANT");
516 Builder.defineMacro("__ARM_DWARF_EH__");
532 MacroBuilder &Builder) const override {
534 Builder.defineMacro("PSP");
535 Builder.defineMacro("_PSP");
536 Builder.defineMacro("__psp__");
537 Builder.defineMacro("__ELF__");
550 MacroBuilder &Builder) const override {
552 Builder.defineMacro("__PPC__");
553 Builder.defineMacro("__PPU__");
554 Builder.defineMacro("__CELLOS_LV2__");
555 Builder.defineMacro("__ELF__");
556 Builder.defineMacro("__LP32__");
557 Builder.defineMacro("_ARCH_PPC64");
558 Builder.defineMacro("__powerpc64__");
576 MacroBuilder &Builder) const override {
577 Builder.defineMacro("__FreeBSD__", "9");
578 Builder.defineMacro("__FreeBSD_cc_version", "900001");
579 Builder.defineMacro("__KPRINTF_ATTRIBUTE__");
580 DefineStd(Builder, "unix", Opts);
581 Builder.defineMacro("__ELF__");
582 Builder.defineMacro("__PS4__");
606 MacroBuilder &Builder) const override {
607 DefineStd(Builder, "sun", Opts);
608 DefineStd(Builder, "unix", Opts);
609 Builder.defineMacro("__ELF__");
610 Builder.defineMacro("__svr4__");
611 Builder.defineMacro("__SVR4");
617 Builder.defineMacro("_XOPEN_SOURCE", "600");
619 Builder.defineMacro("_XOPEN_SOURCE", "500");
621 Builder.defineMacro("__C99FEATURES__");
622 Builder.defineMacro("_LARGEFILE_SOURCE");
623 Builder.defineMacro("_LARGEFILE64_SOURCE");
624 Builder.defineMacro("__EXTENSIONS__");
625 Builder.defineMacro("_REENTRANT");
640 MacroBuilder &Builder) const override {
641 Builder.defineMacro("_WIN32");
644 MacroBuilder &Builder) const {
647 Builder.defineMacro("_CPPRTTI");
650 Builder.defineMacro("_CPPUNWIND");
654 Builder.defineMacro("__BOOL_DEFINED");
657 Builder.defineMacro("_CHAR_UNSIGNED");
662 Builder.defineMacro("_MT");
665 Builder.defineMacro("_MSC_VER",
667 Builder.defineMacro("_MSC_FULL_VER", Twine(Opts.MSCompatibilityVersion));
669 Builder.defineMacro("_MSC_BUILD", Twine(1));
672 Builder.defineMacro("_HAS_CHAR16_T_LANGUAGE_SUPPORT", Twine(1));
676 Builder.defineMacro("_MSC_EXTENSIONS");
679 Builder.defineMacro("_RVALUE_REFERENCES_V2_SUPPORTED");
680 Builder.defineMacro("_RVALUE_REFERENCES_SUPPORTED");
681 Builder.defineMacro("_NATIVE_NULLPTR_SUPPORTED");
685 Builder.defineMacro("_INTEGRAL_MAX_BITS", "64");
697 MacroBuilder &Builder) const override {
699 Builder.defineMacro("_REENTRANT");
701 Builder.defineMacro("_GNU_SOURCE");
703 DefineStd(Builder, "unix", Opts);
704 Builder.defineMacro("__ELF__");
705 Builder.defineMacro("__native_client__");
746 MacroBuilder &Builder) const final {
749 Builder.defineMacro("_REENTRANT");
752 Builder.defineMacro("_GNU_SOURCE");
895 MacroBuilder &Builder) const override;
1083 MacroBuilder &Builder) const {
1085 Builder.defineMacro("__ppc__");
1086 Builder.defineMacro("__PPC__");
1087 Builder.defineMacro("_ARCH_PPC");
1088 Builder.defineMacro("__powerpc__");
1089 Builder.defineMacro("__POWERPC__");
1091 Builder.defineMacro("_ARCH_PPC64");
1092 Builder.defineMacro("__powerpc64__");
1093 Builder.defineMacro("__ppc64__");
1094 Builder.defineMacro("__PPC64__");
1099 Builder.defineMacro("_LITTLE_ENDIAN");
1103 Builder.defineMacro("_BIG_ENDIAN");
1108 Builder.defineMacro("_CALL_ELF", "1");
1110 Builder.defineMacro("_CALL_ELF", "2");
1113 Builder.defineMacro("__NATURAL_ALIGNMENT__");
1114 Builder.defineMacro("__REGISTER_PREFIX__", "");
1118 Builder.defineMacro("__LONG_DOUBLE_128__");
1121 Builder.defineMacro("__VEC__", "10206");
1122 Builder.defineMacro("__ALTIVEC__");
1182 Builder.defineMacro(Twine("_ARCH_", StringRef(CPU).upper()));
1184 Builder.defineMacro("_ARCH_PPCGR");
1186 Builder.defineMacro("_ARCH_PPCSQ");
1188 Builder.defineMacro("_ARCH_440");
1190 Builder.defineMacro("_ARCH_603");
1192 Builder.defineMacro("_ARCH_604");
1194 Builder.defineMacro("_ARCH_PWR4");
1196 Builder.defineMacro("_ARCH_PWR5");
1198 Builder.defineMacro("_ARCH_PWR5X");
1200 Builder.defineMacro("_ARCH_PWR6");
1202 Builder.defineMacro("_ARCH_PWR6X");
1204 Builder.defineMacro("_ARCH_PWR7");
1206 Builder.defineMacro("_ARCH_PWR8");
1208 Builder.defineMacro("_ARCH_A2");
1210 Builder.defineMacro("_ARCH_A2Q");
1211 Builder.defineMacro("_ARCH_QP");
1215 Builder.defineMacro("__bg__");
1216 Builder.defineMacro("__THW_BLUEGENE__");
1217 Builder.defineMacro("__bgq__");
1218 Builder.defineMacro("__TOS_BGQ__");
1222 Builder.defineMacro("__VSX__");
1224 Builder.defineMacro("__POWER8_VECTOR__");
1226 Builder.defineMacro("__CRYPTO__");
1228 Builder.defineMacro("__HTM__");
1230 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
1231 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
1232 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
1234 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
1619 MacroBuilder &Builder) const override {
1620 Builder.defineMacro("__PTX__");
1621 Builder.defineMacro("__NVPTX__");
1644 Builder.defineMacro("__CUDA_ARCH__", CUDAArchCode);
1846 MacroBuilder &Builder) const override {
1847 Builder.defineMacro("__R600__");
1849 Builder.defineMacro("__HAS_FMAF__");
1851 Builder.defineMacro("__HAS_LDEXPF__");
1853 Builder.defineMacro("cl_khr_fp64");
1856 Builder.defineMacro("cl_khr_byte_addressable_store");
1857 Builder.defineMacro("cl_khr_global_int32_base_atomics");
1858 Builder.defineMacro("cl_khr_global_int32_extended_atomics");
1859 Builder.defineMacro("cl_khr_local_int32_base_atomics");
1860 Builder.defineMacro("cl_khr_local_int32_extended_atomics");
2393 MacroBuilder &Builder) const override;
3072 MacroBuilder &Builder) const {
3075 Builder.defineMacro("__amd64__");
3076 Builder.defineMacro("__amd64");
3077 Builder.defineMacro("__x86_64");
3078 Builder.defineMacro("__x86_64__");
3080 Builder.defineMacro("__x86_64h");
3081 Builder.defineMacro("__x86_64h__");
3084 DefineStd(Builder, "i386", Opts);
3095 Builder.defineMacro("__tune_i386__");
3101 defineCPUMacros(Builder, "i486");
3104 Builder.defineMacro("__pentium_mmx__");
3105 Builder.defineMacro("__tune_pentium_mmx__");
3109 defineCPUMacros(Builder, "i586");
3110 defineCPUMacros(Builder, "pentium");
3115 Builder.defineMacro("__tune_pentium3__");
3119 Builder.defineMacro("__tune_pentium2__");
3122 Builder.defineMacro("__tune_i686__");
3123 Builder.defineMacro("__tune_pentiumpro__");
3126 Builder.defineMacro("__i686");
3127 Builder.defineMacro("__i686__");
3129 Builder.defineMacro("__pentiumpro");
3130 Builder.defineMacro("__pentiumpro__");
3134 defineCPUMacros(Builder, "pentium4");
3139 defineCPUMacros(Builder, "nocona");
3143 defineCPUMacros(Builder, "core2");
3146 defineCPUMacros(Builder, "atom");
3149 defineCPUMacros(Builder, "slm");
3160 defineCPUMacros(Builder, "corei7");
3167 defineCPUMacros(Builder, "skx");
3170 defineCPUMacros(Builder, "knl");
3173 Builder.defineMacro("__k6_2__");
3174 Builder.defineMacro("__tune_k6_2__");
3181 Builder.defineMacro("__k6_3__");
3182 Builder.defineMacro("__tune_k6_3__");
3186 defineCPUMacros(Builder, "k6");
3193 defineCPUMacros(Builder, "athlon");
3195 Builder.defineMacro("__athlon_sse__");
3196 Builder.defineMacro("__tune_athlon_sse__");
3207 defineCPUMacros(Builder, "k8");
3210 defineCPUMacros(Builder, "amdfam10");
3213 defineCPUMacros(Builder, "btver1");
3216 defineCPUMacros(Builder, "btver2");
3219 defineCPUMacros(Builder, "bdver1");
3222 defineCPUMacros(Builder, "bdver2");
3225 defineCPUMacros(Builder, "bdver3");
3228 defineCPUMacros(Builder, "bdver4");
3231 defineCPUMacros(Builder, "geode");
3236 Builder.defineMacro("__REGISTER_PREFIX__", "");
3241 Builder.defineMacro("__NO_MATH_INLINES");
3244 Builder.defineMacro("__AES__");
3247 Builder.defineMacro("__PCLMUL__");
3250 Builder.defineMacro("__LZCNT__");
3253 Builder.defineMacro("__RDRND__");
3256 Builder.defineMacro("__FSGSBASE__");
3259 Builder.defineMacro("__BMI__");
3262 Builder.defineMacro("__BMI2__");
3265 Builder.defineMacro("__POPCNT__");
3268 Builder.defineMacro("__RTM__");
3271 Builder.defineMacro("__PRFCHW__");
3274 Builder.defineMacro("__RDSEED__");
3277 Builder.defineMacro("__ADX__");
3280 Builder.defineMacro("__TBM__");
3284 Builder.defineMacro("__XOP__");
3286 Builder.defineMacro("__FMA4__");
3288 Builder.defineMacro("__SSE4A__");
3294 Builder.defineMacro("__FMA__");
3297 Builder.defineMacro("__F16C__");
3300 Builder.defineMacro("__AVX512CD__");
3302 Builder.defineMacro("__AVX512ER__");
3304 Builder.defineMacro("__AVX512PF__");
3306 Builder.defineMacro("__AVX512DQ__");
3308 Builder.defineMacro("__AVX512BW__");
3310 Builder.defineMacro("__AVX512VL__");
3313 Builder.defineMacro("__SHA__");
3316 Builder.defineMacro("__FXSR__");
3318 Builder.defineMacro("__XSAVE__");
3320 Builder.defineMacro("__XSAVEOPT__");
3322 Builder.defineMacro("__XSAVEC__");
3324 Builder.defineMacro("__XSAVES__");
3327 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16");
3332 Builder.defineMacro("__AVX512F__");
3334 Builder.defineMacro("__AVX2__");
3336 Builder.defineMacro("__AVX__");
3338 Builder.defineMacro("__SSE4_2__");
3340 Builder.defineMacro("__SSE4_1__");
3342 Builder.defineMacro("__SSSE3__");
3344 Builder.defineMacro("__SSE3__");
3346 Builder.defineMacro("__SSE2__");
3347 Builder.defineMacro("__SSE2_MATH__"); // -mfp-math=sse always implied.
3349 Builder.defineMacro("__SSE__");
3350 Builder.defineMacro("__SSE_MATH__"); // -mfp-math=sse always implied.
3365 Builder.defineMacro("_M_IX86_FP", Twine(2));
3368 Builder.defineMacro("_M_IX86_FP", Twine(1));
3371 Builder.defineMacro("_M_IX86_FP", Twine(0));
3378 Builder.defineMacro("__3dNOW_A__");
3380 Builder.defineMacro("__3dNOW__");
3382 Builder.defineMacro("__MMX__");
3388 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
3389 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
3390 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
3393 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
3763 MacroBuilder &Builder) const override {
3764 WindowsTargetInfo<X86_32TargetInfo>::getTargetDefines(Opts, Builder);
3777 MacroBuilder &Builder) const override {
3778 WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder);
3779 WindowsX86_32TargetInfo::getVisualStudioDefines(Opts, Builder);
3783 Builder.defineMacro("_M_IX86", "600");
3787 static void addCygMingDefines(const LangOptions &Opts, MacroBuilder &Builder) {
3792 Builder.defineMacro("__declspec", "__declspec");
3794 Builder.defineMacro("__declspec(a)", "__attribute__((a))");
3805 Builder.defineMacro(Twine("_") + CC, GCCSpelling);
3806 Builder.defineMacro(Twine("__") + CC, GCCSpelling);
3811 static void addMinGWDefines(const LangOptions &Opts, MacroBuilder &Builder) {
3812 Builder.defineMacro("__MSVCRT__");
3813 Builder.defineMacro("__MINGW32__");
3814 addCygMingDefines(Opts, Builder);
3823 MacroBuilder &Builder) const override {
3824 WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder);
3825 DefineStd(Builder, "WIN32", Opts);
3826 DefineStd(Builder, "WINNT", Opts);
3827 Builder.defineMacro("_X86_");
3828 addMinGWDefines(Opts, Builder);
3842 MacroBuilder &Builder) const override {
3843 X86_32TargetInfo::getTargetDefines(Opts, Builder);
3844 Builder.defineMacro("_X86_");
3845 Builder.defineMacro("__CYGWIN__");
3846 Builder.defineMacro("__CYGWIN32__");
3847 addCygMingDefines(Opts, Builder);
3848 DefineStd(Builder, "unix", Opts);
3850 Builder.defineMacro("_GNU_SOURCE");
3866 MacroBuilder &Builder) const override {
3867 X86_32TargetInfo::getTargetDefines(Opts, Builder);
3868 Builder.defineMacro("__INTEL__");
3869 Builder.defineMacro("__HAIKU__");
3887 MacroBuilder &Builder) const override {
3888 X86_32TargetInfo::getTargetDefines(Opts, Builder);
3889 Builder.defineMacro("__iamcu");
3890 Builder.defineMacro("__iamcu__");
3899 MacroBuilder &Builder) const override {
3902 Builder.defineMacro("__rtems__");
3903 Builder.defineMacro("__ELF__");
3939 MacroBuilder &Builder) const override {
3940 X86_32TargetInfo::getTargetDefines(Opts, Builder);
3941 Builder.defineMacro("__INTEL__");
3942 Builder.defineMacro("__rtems__");
4043 MacroBuilder &Builder) const override {
4044 WindowsTargetInfo<X86_64TargetInfo>::getTargetDefines(Opts, Builder);
4045 Builder.defineMacro("_WIN64");
4078 MacroBuilder &Builder) const override {
4079 WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder);
4080 WindowsX86_64TargetInfo::getVisualStudioDefines(Opts, Builder);
4081 Builder.defineMacro("_M_X64", "100");
4082 Builder.defineMacro("_M_AMD64", "100");
4098 MacroBuilder &Builder) const override {
4099 WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder);
4100 DefineStd(Builder, "WIN64", Opts);
4101 Builder.defineMacro("__MINGW64__");
4102 addMinGWDefines(Opts, Builder);
4106 Builder.defineMacro("__SEH__");
4119 MacroBuilder &Builder) const override {
4120 X86_64TargetInfo::getTargetDefines(Opts, Builder);
4121 Builder.defineMacro("__x86_64__");
4122 Builder.defineMacro("__CYGWIN__");
4123 Builder.defineMacro("__CYGWIN64__");
4124 addCygMingDefines(Opts, Builder);
4125 DefineStd(Builder, "unix", Opts);
4127 Builder.defineMacro("_GNU_SOURCE");
4131 Builder.defineMacro("__SEH__");
4687 MacroBuilder &Builder) const override {
4689 Builder.defineMacro("__arm");
4690 Builder.defineMacro("__arm__");
4693 Builder.defineMacro("__REGISTER_PREFIX__", "");
4698 Builder.defineMacro("__ARM_ARCH_7K__", "2");
4701 Builder.defineMacro("__ARM_ARCH_" + CPUAttr + "__");
4705 Builder.defineMacro("__ARM_ARCH", llvm::utostr(ArchVersion));
4710 Builder.defineMacro("__ARM_FEATURE_CRYPTO", "1");
4713 Builder.defineMacro("__ARM_FEATURE_CRC32", "1");
4715 Builder.defineMacro("__ARM_FEATURE_NUMERIC_MAXMIN", "1");
4717 Builder.defineMacro("__ARM_FEATURE_DIRECTED_ROUNDING", "1");
4724 Builder.defineMacro("__ARM_ARCH_ISA_ARM", "1");
4730 Builder.defineMacro("__ARM_ARCH_ISA_THUMB", "2");
4732 Builder.defineMacro("__ARM_ARCH_ISA_THUMB", "1");
4736 Builder.defineMacro("__ARM_32BIT_STATE", "1");
4742 Builder.defineMacro("__ARM_ARCH_PROFILE", "'" + CPUProfile + "'");
4746 Builder.defineMacro("__ARM_FEATURE_UNALIGNED", "1");
4750 Builder.defineMacro("__ARM_FEATURE_LDREX", "0x" + llvm::utohexstr(LDREX));
4756 Builder.defineMacro("__ARM_FEATURE_CLZ", "1");
4760 Builder.defineMacro("__ARM_FP", "0x" + llvm::utohexstr(HW_FP));
4763 Builder.defineMacro("__ARM_ACLE", "200");
4766 Builder.defineMacro("__ARM_FP16_FORMAT_IEEE", "1");
4767 Builder.defineMacro("__ARM_FP16_ARGS", "1");
4771 Builder.defineMacro("__ARM_FEATURE_FMA", "1");
4779 Builder.defineMacro("__THUMB_INTERWORK__");
4785 Builder.defineMacro("__ARM_EABI__");
4786 Builder.defineMacro("__ARM_PCS", "1");
4789 Builder.defineMacro("__ARM_PCS_VFP", "1");
4793 Builder.defineMacro("__SOFTFP__");
4796 Builder.defineMacro("__XSCALE__");
4799 Builder.defineMacro("__THUMBEL__");
4800 Builder.defineMacro("__thumb__");
4802 Builder.defineMacro("__thumb2__");
4807 Builder.defineMacro("__ARM_FEATURE_SIMD32", "1");
4812 Builder.defineMacro("__ARM_FEATURE_IDIV", "1");
4813 Builder.defineMacro("__ARM_ARCH_EXT_IDIV__", "1");
4817 Builder.defineMacro("__APCS_32__");
4820 Builder.defineMacro("__VFP_FP__");
4822 Builder.defineMacro("__ARM_VFPV2__");
4824 Builder.defineMacro("__ARM_VFPV3__");
4826 Builder.defineMacro("__ARM_VFPV4__");
4834 Builder.defineMacro("__ARM_NEON", "1");
4835 Builder.defineMacro("__ARM_NEON__");
4838 Builder.defineMacro("__ARM_NEON_FP",
4842 Builder.defineMacro("__ARM_SIZEOF_WCHAR_T",
4845 Builder.defineMacro("__ARM_SIZEOF_MINIMAL_ENUM",
4849 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
4850 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
4851 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
4852 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
4857 Builder.defineMacro("__ARM_FEATURE_DSP", "1");
4863 Builder.defineMacro("__ARM_FEATURE_SAT", "1");
4869 Builder.defineMacro("__ARM_FEATURE_QBIT", "1");
4872 Builder.defineMacro("__ARM_FP_FAST", "1");
4875 Builder.defineMacro("__ARM_FEATURE_QRDMX", "1");
5075 MacroBuilder &Builder) const override {
5076 Builder.defineMacro("__ARMEL__");
5077 ARMTargetInfo::getTargetDefines(Opts, Builder);
5086 MacroBuilder &Builder) const override {
5087 Builder.defineMacro("__ARMEB__");
5088 Builder.defineMacro("__ARM_BIG_ENDIAN");
5089 ARMTargetInfo::getTargetDefines(Opts, Builder);
5104 MacroBuilder &Builder) const {
5105 WindowsTargetInfo<ARMleTargetInfo>::getVisualStudioDefines(Opts, Builder);
5108 Builder.defineMacro("_M_ARM_NT", "1");
5109 Builder.defineMacro("_M_ARMT", "_M_ARM");
5110 Builder.defineMacro("_M_THUMB", "_M_ARM");
5116 Builder.defineMacro("_M_ARM", Triple.getArchName().substr(Offset));
5120 Builder.defineMacro("_M_ARM_FP", "31");
5149 MacroBuilder &Builder) const override {
5150 WindowsARMTargetInfo::getTargetDefines(Opts, Builder);
5153 WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder);
5166 MacroBuilder &Builder) const override {
5167 WindowsARMTargetInfo::getTargetDefines(Opts, Builder);
5168 WindowsARMTargetInfo::getVisualStudioDefines(Opts, Builder);
5181 MacroBuilder &Builder) const override {
5182 WindowsARMTargetInfo::getTargetDefines(Opts, Builder);
5183 DefineStd(Builder, "WIN32", Opts);
5184 DefineStd(Builder, "WINNT", Opts);
5185 Builder.defineMacro("_ARM_");
5186 addMinGWDefines(Opts, Builder);
5200 MacroBuilder &Builder) const override {
5201 ARMleTargetInfo::getTargetDefines(Opts, Builder);
5202 Builder.defineMacro("_ARM_");
5203 Builder.defineMacro("__CYGWIN__");
5204 Builder.defineMacro("__CYGWIN32__");
5205 DefineStd(Builder, "unix", Opts);
5207 Builder.defineMacro("_GNU_SOURCE");
5215 MacroBuilder &Builder) const override {
5216 getDarwinDefines(Builder, Opts, Triple, PlatformName, PlatformMinVersion);
5322 MacroBuilder &Builder) const override {
5324 Builder.defineMacro("__aarch64__");
5327 Builder.defineMacro("_LP64");
5328 Builder.defineMacro("__LP64__");
5331 Builder.defineMacro("__ARM_ACLE", "200");
5332 Builder.defineMacro("__ARM_ARCH", "8");
5333 Builder.defineMacro("__ARM_ARCH_PROFILE", "'A'");
5335 Builder.defineMacro("__ARM_64BIT_STATE", "1");
5336 Builder.defineMacro("__ARM_PCS_AAPCS64", "1");
5337 Builder.defineMacro("__ARM_ARCH_ISA_A64", "1");
5339 Builder.defineMacro("__ARM_FEATURE_CLZ", "1");
5340 Builder.defineMacro("__ARM_FEATURE_FMA", "1");
5341 Builder.defineMacro("__ARM_FEATURE_LDREX", "0xF");
5342 Builder.defineMacro("__ARM_FEATURE_IDIV", "1"); // As specified in ACLE
5343 Builder.defineMacro("__ARM_FEATURE_DIV"); // For backwards compatibility
5344 Builder.defineMacro("__ARM_FEATURE_NUMERIC_MAXMIN", "1");
5345 Builder.defineMacro("__ARM_FEATURE_DIRECTED_ROUNDING", "1");
5347 Builder.defineMacro("__ARM_ALIGN_MAX_STACK_PWR", "4");
5350 Builder.defineMacro("__ARM_FP", "0xE");
5354 Builder.defineMacro("__ARM_FP16_FORMAT_IEEE", "1");
5355 Builder.defineMacro("__ARM_FP16_ARGS", "1");
5358 Builder.defineMacro("__ARM_FP_FAST", "1");
5360 Builder.defineMacro("__ARM_SIZEOF_WCHAR_T", Opts.ShortWChar ? "2" : "4");
5362 Builder.defineMacro("__ARM_SIZEOF_MINIMAL_ENUM",
5366 Builder.defineMacro("__ARM_NEON", "1");
5368 Builder.defineMacro("__ARM_NEON_FP", "0xE");
5372 Builder.defineMacro("__ARM_FEATURE_CRC32", "1");
5375 Builder.defineMacro("__ARM_FEATURE_CRYPTO", "1");
5378 Builder.defineMacro("__ARM_FEATURE_UNALIGNED", "1");
5381 Builder.defineMacro("__ARM_FEATURE_QRDMX", "1");
5384 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
5385 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
5386 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
5387 Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
5586 MacroBuilder &Builder) const override {
5587 Builder
5588 AArch64TargetInfo::getTargetDefines(Opts, Builder);
5602 MacroBuilder &Builder) const override {
5603 Builder.defineMacro("__AARCH64EB__");
5604 Builder.defineMacro("__AARCH_BIG_ENDIAN");
5605 Builder.defineMacro("__ARM_BIG_ENDIAN");
5606 AArch64TargetInfo::getTargetDefines(Opts, Builder);
5613 MacroBuilder &Builder) const override {
5614 Builder.defineMacro("__AARCH64_SIMD__");
5615 Builder.defineMacro("__ARM64_ARCH_8__");
5616 Builder.defineMacro("__ARM_NEON__");
5617 Builder.defineMacro("__LITTLE_ENDIAN__");
5618 Builder.defineMacro("__REGISTER_PREFIX__", "");
5619 Builder.defineMacro("__arm64", "1");
5620 Builder.defineMacro("__arm64__", "1");
5622 getDarwinDefines(Builder, Opts, Triple, PlatformName, PlatformMinVersion);
5683 MacroBuilder &Builder) const override;
5733 MacroBuilder &Builder) const {
5734 Builder.defineMacro("__qdsp6__", "1");
5735 Builder.defineMacro("__hexagon__", "1");
5738 Builder.defineMacro("__HEXAGON_V4__");
5739 Builder.defineMacro("__HEXAGON_ARCH__", "4");
5741 Builder.defineMacro("__QDSP6_V4__");
5742 Builder.defineMacro("__QDSP6_ARCH__", "4");
5745 Builder.defineMacro("__HEXAGON_V5__");
5746 Builder.defineMacro("__HEXAGON_ARCH__", "5");
5748 Builder.defineMacro("__QDSP6_V5__");
5749 Builder.defineMacro("__QDSP6_ARCH__", "5");
5752 Builder.defineMacro("__HEXAGON_V60__");
5753 Builder.defineMacro("__HEXAGON_ARCH__", "60");
5754 Builder.defineMacro("__QDSP6_V60__");
5755 Builder.defineMacro("__QDSP6_ARCH__", "60");
5838 MacroBuilder &Builder) const override {
5839 DefineStd(Builder, "sparc", Opts);
5840 Builder.defineMacro("__REGISTER_PREFIX__", "");
5843 Builder.defineMacro("SOFT_FLOAT", "1");
6029 MacroBuilder &Builder) const override {
6030 SparcTargetInfo::getTargetDefines(Opts, Builder);
6033 Builder.defineMacro("__sparcv8");
6035 Builder.defineMacro("__sparcv8__");
6038 Builder.defineMacro("__sparcv9");
6040 Builder.defineMacro("__sparcv9__");
6041 Builder.defineMacro("__sparc_v9__");
6082 MacroBuilder &Builder) const override {
6083 SparcTargetInfo::getTargetDefines(Opts, Builder);
6084 Builder.defineMacro("__sparcv9");
6085 Builder.defineMacro("__arch64__");
6088 Builder.defineMacro("__sparc64__");
6089 Builder.defineMacro("__sparc_v9__");
6090 Builder.defineMacro("__sparcv9__");
6127 MacroBuilder &Builder) const override {
6128 Builder.defineMacro("__s390__");
6129 Builder.defineMacro("__s390x__");
6130 Builder.defineMacro("__zarch__");
6131 Builder.defineMacro("__LONG_DOUBLE_128__");
6133 Builder.defineMacro("__HTM__");
6135 Builder.defineMacro("__VEC__", "10301");
6286 MacroBuilder &Builder) const override {
6287 Builder.defineMacro("MSP430");
6288 Builder.defineMacro("__MSP430__");
6383 MacroBuilder &Builder) const override {
6384 DefineStd(Builder, "tce", Opts);
6385 Builder.defineMacro("__TCE__");
6386 Builder.defineMacro("__TCE_V1__");
6427 MacroBuilder &Builder) const override {
6428 DefineStd(Builder, "bpf", Opts);
6429 Builder.defineMacro("__BPF__");
6534 MacroBuilder &Builder) const override {
6535 Builder.defineMacro("__mips__");
6536 Builder.defineMacro("_mips");
6538 Builder.defineMacro("mips");
6540 Builder.defineMacro("__REGISTER_PREFIX__", "");
6544 Builder.defineMacro("__mips_hard_float", Twine(1));
6547 Builder.defineMacro("__mips_soft_float", Twine(1));
6552 Builder.defineMacro("__mips_single_float", Twine(1));
6554 Builder.defineMacro("__mips_fpr", HasFP64 ? Twine(64) : Twine(32));
6555 Builder.defineMacro("_MIPS_FPSET",
6559 Builder.defineMacro("__mips16", Twine(1));
6562 Builder.defineMacro("__mips_micromips", Twine(1));
6565 Builder.defineMacro("__mips_nan2008", Twine(1));
6571 Builder.defineMacro("__mips_dsp_rev", Twine(1));
6572 Builder.defineMacro("__mips_dsp", Twine(1));
6575 Builder.defineMacro("__mips_dsp_rev", Twine(2));
6576 Builder.defineMacro("__mips_dspr2", Twine(1));
6577 Builder.defineMacro("__mips_dsp", Twine(1));
6582 Builder.defineMacro("__mips_msa", Twine(1));
6584 Builder.defineMacro("_MIPS_SZPTR", Twine(getPointerWidth(0)));
6585 Builder.defineMacro("_MIPS_SZINT", Twine(getIntWidth()));
6586 Builder.defineMacro("_MIPS_SZLONG", Twine(getLongWidth()));
6588 Builder.defineMacro("_MIPS_ARCH", "\"" + CPU + "\"");
6589 Builder.defineMacro("_MIPS_ARCH_" + StringRef(CPU).upper());
6783 MacroBuilder &Builder) const override {
6784 MipsTargetInfoBase::getTargetDefines(Opts, Builder);
6786 Builder.defineMacro("__mips", "32");
6787 Builder.defineMacro("_MIPS_ISA", "_MIPS_ISA_MIPS32");
6791 Builder.defineMacro("__mips_isa_rev", "1");
6793 Builder.defineMacro("__mips_isa_rev", "2");
6795 Builder.defineMacro("__mips_isa_rev", "3");
6797 Builder.defineMacro("__mips_isa_rev", "5");
6799 Builder.defineMacro("__mips_isa_rev", "6");
6802 Builder.defineMacro("__mips_o32");
6803 Builder.defineMacro("_ABIO32", "1");
6804 Builder.defineMacro("_MIPS_SIM", "_ABIO32");
6807 Builder.defineMacro("__mips_eabi");
6859 MacroBuilder &Builder) const override {
6860 DefineStd(Builder, "MIPSEB", Opts);
6861 Builder.defineMacro("_MIPSEB");
6862 Mips32TargetInfoBase::getTargetDefines(Opts, Builder);
6877 MacroBuilder &Builder) const override {
6878 DefineStd(Builder, "MIPSEL", Opts);
6879 Builder.defineMacro("_MIPSEL");
6880 Mips32TargetInfoBase::getTargetDefines(Opts, Builder);
6932 MacroBuilder &Builder) const override {
6933 MipsTargetInfoBase::getTargetDefines(Opts, Builder);
6935 Builder.defineMacro("__mips", "64");
6936 Builder.defineMacro("__mips64");
6937 Builder.defineMacro("__mips64__");
6938 Builder.defineMacro("_MIPS_ISA", "_MIPS_ISA_MIPS64");
6942 Builder.defineMacro("__mips_isa_rev", "1");
6944 Builder.defineMacro("__mips_isa_rev", "2");
6946 Builder.defineMacro("__mips_isa_rev", "3");
6948 Builder.defineMacro("__mips_isa_rev", "5");
6950 Builder.defineMacro("__mips_isa_rev", "6");
6953 Builder.defineMacro("__mips_n32");
6954 Builder.defineMacro("_ABIN32", "2");
6955 Builder.defineMacro("_MIPS_SIM", "_ABIN32");
6958 Builder.defineMacro("__mips_n64");
6959 Builder.defineMacro("_ABI64", "3");
6960 Builder.defineMacro("_MIPS_SIM", "_ABI64");
7018 MacroBuilder &Builder) const override {
7019 DefineStd(Builder, "MIPSEB", Opts);
7020 Builder.defineMacro("_MIPSEB");
7021 Mips64TargetInfoBase::getTargetDefines(Opts, Builder);
7039 MacroBuilder &Builder) const override {
7040 DefineStd(Builder, "MIPSEL", Opts);
7041 Builder.defineMacro("_MIPSEL");
7042 Mips64TargetInfoBase::getTargetDefines(Opts, Builder);
7066 void getArchDefines(const LangOptions &Opts, MacroBuilder &Builder) const {
7067 Builder.defineMacro("__le32__");
7068 Builder.defineMacro("__pnacl__");
7071 MacroBuilder &Builder) const override {
7072 getArchDefines(Opts, Builder);
7126 MacroBuilder &Builder) const override {
7127 DefineStd(Builder, "unix", Opts);
7128 defineCPUMacros(Builder, "le64", /*Tuning=*/false);
7129 Builder.defineMacro("__ELF__");
7177 MacroBuilder &Builder) const override {
7178 defineCPUMacros(Builder, "wasm", /*Tuning=*/false);
7180 Builder.defineMacro("__wasm_simd128__");
7276 MacroBuilder &Builder) const override {
7277 WebAssemblyTargetInfo::getTargetDefines(Opts, Builder);
7278 defineCPUMacros(Builder, "wasm32", /*Tuning=*/false);
7294 MacroBuilder &Builder) const override {
7295 WebAssemblyTargetInfo::getTargetDefines(Opts, Builder);
7296 defineCPUMacros(Builder, "wasm64", /*Tuning=*/false);
7332 MacroBuilder &Builder) const override {
7333 DefineStd(Builder, "SPIR", Opts);
7373 MacroBuilder &Builder) const override {
7374 DefineStd(Builder, "SPIR32", Opts);
7388 MacroBuilder &Builder) const override {
7389 DefineStd(Builder, "SPIR64", Opts);
7412 MacroBuilder &Builder) const override {
7413 Builder.defineMacro("__XS1B__");