Lines Matching refs:Triple

24 int arm::getARMSubArchVersionNumber(const llvm::Triple &Triple) {  in getARMSubArchVersionNumber()  argument
25 llvm::StringRef Arch = Triple.getArchName(); in getARMSubArchVersionNumber()
30 bool arm::isARMMProfile(const llvm::Triple &Triple) { in isARMMProfile() argument
31 llvm::StringRef Arch = Triple.getArchName(); in isARMMProfile()
39 bool arm::isARMBigEndian(const llvm::Triple &Triple, const ArgList &Args) { in isARMBigEndian() argument
45 return Triple.getArch() == llvm::Triple::armeb || in isARMBigEndian()
46 Triple.getArch() == llvm::Triple::thumbeb; in isARMBigEndian()
50 bool arm::isARMAProfile(const llvm::Triple &Triple) { in isARMAProfile() argument
51 llvm::StringRef Arch = Triple.getArchName(); in isARMAProfile()
129 const llvm::Triple &Triple, in checkARMArchName() argument
133 std::string MArch = arm::getARMArch(ArchName, Triple); in checkARMArchName()
147 const llvm::Triple &Triple, in checkARMCPUName() argument
151 std::string CPU = arm::getARMTargetCPU(CPUName, ArchName, Triple); in checkARMCPUName()
153 arm::getLLVMArchKindForARM(CPU, ArchName, Triple); in checkARMCPUName()
177 bool arm::useAAPCSForMachO(const llvm::Triple &T) { in useAAPCSForMachO()
180 return T.getEnvironment() == llvm::Triple::EABI || in useAAPCSForMachO()
181 T.getEnvironment() == llvm::Triple::EABIHF || in useAAPCSForMachO()
182 T.getOS() == llvm::Triple::UnknownOS || isARMMProfile(T); in useAAPCSForMachO()
188 bool arm::isHardTPSupported(const llvm::Triple &Triple) { in isHardTPSupported() argument
189 int Ver = getARMSubArchVersionNumber(Triple); in isHardTPSupported()
190 llvm::ARM::ArchKind AK = llvm::ARM::parseArch(Triple.getArchName()); in isHardTPSupported()
191 return Triple.isARM() || AK == llvm::ARM::ArchKind::ARMV6T2 || in isHardTPSupported()
197 const llvm::Triple &Triple, bool ForAS) { in getReadTPMode() argument
210 !isHardTPSupported(Triple) && !ForAS) { in getReadTPMode()
211 D.Diag(diag::err_target_unsupported_tp_hard) << Triple.getArchName(); in getReadTPMode()
226 types::ID InputType, llvm::Triple &Triple) { in setArchNameInTriple() argument
233 std::string CPU = Triple.isOSBinFormatMachO() in setArchNameInTriple()
234 ? tools::arm::getARMCPUForMArch(MArch, Triple).str() in setArchNameInTriple()
235 : tools::arm::getARMTargetCPU(MCPU, MArch, Triple); in setArchNameInTriple()
236 StringRef Suffix = tools::arm::getLLVMArchSuffixForARM(CPU, MArch, Triple); in setArchNameInTriple()
238 bool IsBigEndian = Triple.getArch() == llvm::Triple::armeb || in setArchNameInTriple()
239 Triple.getArch() == llvm::Triple::thumbeb; in setArchNameInTriple()
254 Triple.isOSBinFormatMachO()) || in setArchNameInTriple()
256 Triple.isOSWindows(); in setArchNameInTriple()
267 << tools::arm::getARMArch(MArch, Triple) << "ARM"; in setArchNameInTriple()
298 Suffix = tools::arm::getLLVMArchSuffixForARM(WaMCPU, WaMArch, Triple); in setArchNameInTriple()
305 if (IsThumb || IsMProfile || Triple.isOSWindows()) { in setArchNameInTriple()
311 Triple.setArchName(ArchName + Suffix.str()); in setArchNameInTriple()
315 llvm::Triple &Triple) { in setFloatABIInTriple() argument
316 if (Triple.isOSLiteOS()) { in setFloatABIInTriple()
317 Triple.setEnvironment(llvm::Triple::OpenHOS); in setFloatABIInTriple()
322 (arm::getARMFloatABI(D, Triple, Args) == arm::FloatABI::Hard); in setFloatABIInTriple()
324 switch (Triple.getEnvironment()) { in setFloatABIInTriple()
325 case llvm::Triple::GNUEABI: in setFloatABIInTriple()
326 case llvm::Triple::GNUEABIHF: in setFloatABIInTriple()
327 Triple.setEnvironment(isHardFloat ? llvm::Triple::GNUEABIHF in setFloatABIInTriple()
328 : llvm::Triple::GNUEABI); in setFloatABIInTriple()
330 case llvm::Triple::GNUEABIT64: in setFloatABIInTriple()
331 case llvm::Triple::GNUEABIHFT64: in setFloatABIInTriple()
332 Triple.setEnvironment(isHardFloat ? llvm::Triple::GNUEABIHFT64 in setFloatABIInTriple()
333 : llvm::Triple::GNUEABIT64); in setFloatABIInTriple()
335 case llvm::Triple::EABI: in setFloatABIInTriple()
336 case llvm::Triple::EABIHF: in setFloatABIInTriple()
337 Triple.setEnvironment(isHardFloat ? llvm::Triple::EABIHF in setFloatABIInTriple()
338 : llvm::Triple::EABI); in setFloatABIInTriple()
340 case llvm::Triple::MuslEABI: in setFloatABIInTriple()
341 case llvm::Triple::MuslEABIHF: in setFloatABIInTriple()
342 Triple.setEnvironment(isHardFloat ? llvm::Triple::MuslEABIHF in setFloatABIInTriple()
343 : llvm::Triple::MuslEABI); in setFloatABIInTriple()
345 case llvm::Triple::OpenHOS: in setFloatABIInTriple()
348 arm::FloatABI DefaultABI = arm::getDefaultFloatABI(Triple); in setFloatABIInTriple()
356 << ABIArg->getAsString(Args) << Triple.getTriple(); in setFloatABIInTriple()
367 arm::FloatABI arm::getDefaultFloatABI(const llvm::Triple &Triple) { in getDefaultFloatABI() argument
368 auto SubArch = getARMSubArchVersionNumber(Triple); in getDefaultFloatABI()
369 switch (Triple.getOS()) { in getDefaultFloatABI()
370 case llvm::Triple::Darwin: in getDefaultFloatABI()
371 case llvm::Triple::MacOSX: in getDefaultFloatABI()
372 case llvm::Triple::IOS: in getDefaultFloatABI()
373 case llvm::Triple::TvOS: in getDefaultFloatABI()
374 case llvm::Triple::DriverKit: in getDefaultFloatABI()
375 case llvm::Triple::XROS: in getDefaultFloatABI()
377 if (Triple.isWatchABI()) in getDefaultFloatABI()
382 case llvm::Triple::WatchOS: in getDefaultFloatABI()
386 case llvm::Triple::Win32: in getDefaultFloatABI()
389 if (Triple.isOSBinFormatMachO() && !useAAPCSForMachO(Triple)) in getDefaultFloatABI()
393 case llvm::Triple::NetBSD: in getDefaultFloatABI()
394 switch (Triple.getEnvironment()) { in getDefaultFloatABI()
395 case llvm::Triple::EABIHF: in getDefaultFloatABI()
396 case llvm::Triple::GNUEABIHF: in getDefaultFloatABI()
403 case llvm::Triple::FreeBSD: in getDefaultFloatABI()
404 switch (Triple.getEnvironment()) { in getDefaultFloatABI()
405 case llvm::Triple::GNUEABIHF: in getDefaultFloatABI()
413 case llvm::Triple::Haiku: in getDefaultFloatABI()
414 case llvm::Triple::OpenBSD: in getDefaultFloatABI()
418 if (Triple.isOHOSFamily()) in getDefaultFloatABI()
420 switch (Triple.getEnvironment()) { in getDefaultFloatABI()
421 case llvm::Triple::GNUEABIHF: in getDefaultFloatABI()
422 case llvm::Triple::GNUEABIHFT64: in getDefaultFloatABI()
423 case llvm::Triple::MuslEABIHF: in getDefaultFloatABI()
424 case llvm::Triple::EABIHF: in getDefaultFloatABI()
426 case llvm::Triple::GNUEABI: in getDefaultFloatABI()
427 case llvm::Triple::GNUEABIT64: in getDefaultFloatABI()
428 case llvm::Triple::MuslEABI: in getDefaultFloatABI()
429 case llvm::Triple::EABI: in getDefaultFloatABI()
432 case llvm::Triple::Android: in getDefaultFloatABI()
443 arm::FloatABI arm::getARMFloatABI(const Driver &D, const llvm::Triple &Triple, in getARMFloatABI() argument
468 ABI = arm::getDefaultFloatABI(Triple); in getARMFloatABI()
472 if (Triple.isOSBinFormatMachO() && in getARMFloatABI()
473 Triple.getSubArch() == llvm::Triple::ARMSubArch_v7em) in getARMFloatABI()
478 if (Triple.getOS() != llvm::Triple::UnknownOS || in getARMFloatABI()
479 !Triple.isOSBinFormatMachO()) in getARMFloatABI()
495 const llvm::Triple &Triple, in getARMTargetFeatures() argument
501 arm::FloatABI ABI = arm::getARMFloatABI(D, Triple, Args); in getARMTargetFeatures()
558 if (getReadTPMode(D, Args, Triple, ForAS) == ReadTPMode::TPIDRURW) in getARMTargetFeatures()
560 if (getReadTPMode(D, Args, Triple, ForAS) == ReadTPMode::TPIDRURO) in getARMTargetFeatures()
562 if (getReadTPMode(D, Args, Triple, ForAS) == ReadTPMode::TPIDRPRW) in getARMTargetFeatures()
590 ExtensionFeatures, Triple, ArchArgFPUKind); in getARMTargetFeatures()
596 Triple, ArchArgFPUKind); in getARMTargetFeatures()
614 Triple, CPUArgFPUKind); in getARMTargetFeatures()
630 } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) >= 7) { in getARMTargetFeatures()
643 std::string CPU = arm::getARMTargetCPU(CPUName, ArchName, Triple); in getARMTargetFeatures()
645 arm::getLLVMArchKindForARM(CPU, ArchName, Triple); in getARMTargetFeatures()
673 if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v8_4a) { in getARMTargetFeatures()
776 arm::getARMTargetCPU(CPUName, ArchName, Triple), ArchName, Triple); in getARMTargetFeatures()
842 } else if (KernelOrKext && (!Triple.isiOS() || Triple.isOSVersionLT(6)) && in getARMTargetFeatures()
843 !Triple.isWatchOS() && !Triple.isXROS()) { in getARMTargetFeatures()
856 if (getARMSubArchVersionNumber(Triple) < 7 && in getARMTargetFeatures()
857 llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::ArchKind::ARMV6T2 && in getARMTargetFeatures()
858 llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::ArchKind::ARMV6M) in getARMTargetFeatures()
859 D.Diag(diag::err_target_unsupported_execute_only) << Triple.getArchName(); in getARMTargetFeatures()
860 else if (llvm::ARM::parseArch(Triple.getArchName()) == llvm::ARM::ArchKind::ARMV6M) { in getARMTargetFeatures()
865 << A->getAsString(Args) << PIArg->getAsString(Args) << Triple.getArchName(); in getARMTargetFeatures()
885 if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) in getARMTargetFeatures()
889 else if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v8m_baseline) in getARMTargetFeatures()
906 int VersionNum = getARMSubArchVersionNumber(Triple); in getARMTargetFeatures()
907 if (Triple.isOSDarwin() || Triple.isOSNetBSD()) { in getARMTargetFeatures()
909 Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) in getARMTargetFeatures()
912 Triple.getSubArch() == in getARMTargetFeatures()
913 llvm::Triple::SubArchType::ARMSubArch_v6m || in getARMTargetFeatures()
914 Triple.getSubArch() == in getARMTargetFeatures()
915 llvm::Triple::SubArchType::ARMSubArch_v8m_baseline) { in getARMTargetFeatures()
972 if (!(isARMAProfile(Triple) && getARMSubArchVersionNumber(Triple) >= 7)) in getARMTargetFeatures()
993 std::string arm::getARMArch(StringRef Arch, const llvm::Triple &Triple) { in getARMArch() argument
998 MArch = std::string(Triple.getArchName()); in getARMArch()
1006 StringRef Suffix = arm::getLLVMArchSuffixForARM(CPU, MArch, Triple); in getARMArch()
1020 StringRef arm::getARMCPUForMArch(StringRef Arch, const llvm::Triple &Triple) { in getARMCPUForMArch() argument
1021 std::string MArch = getARMArch(Arch, Triple); in getARMCPUForMArch()
1029 return llvm::ARM::getARMCPUForArch(Triple, MArch); in getARMCPUForMArch()
1034 const llvm::Triple &Triple) { in getARMTargetCPU() argument
1046 return std::string(getARMCPUForMArch(Arch, Triple)); in getARMTargetCPU()
1054 const llvm::Triple &Triple) { in getLLVMArchKindForARM() argument
1057 std::string ARMArch = tools::arm::getARMArch(Arch, Triple); in getLLVMArchKindForARM()
1063 llvm::ARM::parseCPUArch(llvm::ARM::getARMCPUForArch(Triple, ARMArch)); in getLLVMArchKindForARM()
1078 const llvm::Triple &Triple) { in getLLVMArchSuffixForARM() argument
1079 llvm::ARM::ArchKind ArchKind = getLLVMArchKindForARM(CPU, Arch, Triple); in getLLVMArchSuffixForARM()
1086 const llvm::Triple &Triple) { in appendBE8LinkFlag() argument
1092 if (arm::getARMSubArchVersionNumber(Triple) >= 7 || arm::isARMMProfile(Triple)) in appendBE8LinkFlag()