Lines Matching refs:Triple

25 int arm::getARMSubArchVersionNumber(const llvm::Triple &Triple) {  in getARMSubArchVersionNumber()  argument
26 llvm::StringRef Arch = Triple.getArchName(); in getARMSubArchVersionNumber()
31 bool arm::isARMMProfile(const llvm::Triple &Triple) { in isARMMProfile() argument
32 llvm::StringRef Arch = Triple.getArchName(); in isARMMProfile()
37 bool arm::isARMAProfile(const llvm::Triple &Triple) { in isARMAProfile() argument
38 llvm::StringRef Arch = Triple.getArchName(); in isARMAProfile()
116 const llvm::Triple &Triple, unsigned &ArgFPUID) { in checkARMArchName() argument
119 std::string MArch = arm::getARMArch(ArchName, Triple); in checkARMArchName()
132 const llvm::Triple &Triple, unsigned &ArgFPUID) { in checkARMCPUName() argument
135 std::string CPU = arm::getARMTargetCPU(CPUName, ArchName, Triple); in checkARMCPUName()
137 arm::getLLVMArchKindForARM(CPU, ArchName, Triple); in checkARMCPUName()
145 bool arm::useAAPCSForMachO(const llvm::Triple &T) { in useAAPCSForMachO()
148 return T.getEnvironment() == llvm::Triple::EABI || in useAAPCSForMachO()
149 T.getEnvironment() == llvm::Triple::EABIHF || in useAAPCSForMachO()
150 T.getOS() == llvm::Triple::UnknownOS || isARMMProfile(T); in useAAPCSForMachO()
156 bool arm::isHardTPSupported(const llvm::Triple &Triple) { in isHardTPSupported() argument
157 int Ver = getARMSubArchVersionNumber(Triple); in isHardTPSupported()
158 llvm::ARM::ArchKind AK = llvm::ARM::parseArch(Triple.getArchName()); in isHardTPSupported()
159 return Triple.isARM() || AK == llvm::ARM::ArchKind::ARMV6T2 || in isHardTPSupported()
165 const llvm::Triple &Triple, bool ForAS) { in getReadTPMode() argument
172 if (ThreadPointer == ReadTPMode::Cp15 && !isHardTPSupported(Triple) && in getReadTPMode()
174 D.Diag(diag::err_target_unsupported_tp_hard) << Triple.getArchName(); in getReadTPMode()
189 types::ID InputType, llvm::Triple &Triple) { in setArchNameInTriple() argument
196 std::string CPU = Triple.isOSBinFormatMachO() in setArchNameInTriple()
197 ? tools::arm::getARMCPUForMArch(MArch, Triple).str() in setArchNameInTriple()
198 : tools::arm::getARMTargetCPU(MCPU, MArch, Triple); in setArchNameInTriple()
199 StringRef Suffix = tools::arm::getLLVMArchSuffixForARM(CPU, MArch, Triple); in setArchNameInTriple()
201 bool IsBigEndian = Triple.getArch() == llvm::Triple::armeb || in setArchNameInTriple()
202 Triple.getArch() == llvm::Triple::thumbeb; in setArchNameInTriple()
217 Triple.isOSBinFormatMachO()) || in setArchNameInTriple()
219 Triple.isOSWindows(); in setArchNameInTriple()
230 << tools::arm::getARMArch(MArch, Triple) << "ARM"; in setArchNameInTriple()
261 Suffix = tools::arm::getLLVMArchSuffixForARM(WaMCPU, WaMArch, Triple); in setArchNameInTriple()
268 if (IsThumb || IsMProfile || Triple.isOSWindows()) { in setArchNameInTriple()
274 Triple.setArchName(ArchName + Suffix.str()); in setArchNameInTriple()
278 llvm::Triple &Triple) { in setFloatABIInTriple() argument
280 (arm::getARMFloatABI(D, Triple, Args) == arm::FloatABI::Hard); in setFloatABIInTriple()
282 switch (Triple.getEnvironment()) { in setFloatABIInTriple()
283 case llvm::Triple::GNUEABI: in setFloatABIInTriple()
284 case llvm::Triple::GNUEABIHF: in setFloatABIInTriple()
285 Triple.setEnvironment(isHardFloat ? llvm::Triple::GNUEABIHF in setFloatABIInTriple()
286 : llvm::Triple::GNUEABI); in setFloatABIInTriple()
288 case llvm::Triple::EABI: in setFloatABIInTriple()
289 case llvm::Triple::EABIHF: in setFloatABIInTriple()
290 Triple.setEnvironment(isHardFloat ? llvm::Triple::EABIHF in setFloatABIInTriple()
291 : llvm::Triple::EABI); in setFloatABIInTriple()
293 case llvm::Triple::MuslEABI: in setFloatABIInTriple()
294 case llvm::Triple::MuslEABIHF: in setFloatABIInTriple()
295 Triple.setEnvironment(isHardFloat ? llvm::Triple::MuslEABIHF in setFloatABIInTriple()
296 : llvm::Triple::MuslEABI); in setFloatABIInTriple()
299 arm::FloatABI DefaultABI = arm::getDefaultFloatABI(Triple); in setFloatABIInTriple()
307 << ABIArg->getAsString(Args) << Triple.getTriple(); in setFloatABIInTriple()
318 arm::FloatABI arm::getDefaultFloatABI(const llvm::Triple &Triple) { in getDefaultFloatABI() argument
319 auto SubArch = getARMSubArchVersionNumber(Triple); in getDefaultFloatABI()
320 switch (Triple.getOS()) { in getDefaultFloatABI()
321 case llvm::Triple::Darwin: in getDefaultFloatABI()
322 case llvm::Triple::MacOSX: in getDefaultFloatABI()
323 case llvm::Triple::IOS: in getDefaultFloatABI()
324 case llvm::Triple::TvOS: in getDefaultFloatABI()
325 case llvm::Triple::DriverKit: in getDefaultFloatABI()
327 if (Triple.isWatchABI()) in getDefaultFloatABI()
332 case llvm::Triple::WatchOS: in getDefaultFloatABI()
336 case llvm::Triple::Win32: in getDefaultFloatABI()
339 if (Triple.isOSBinFormatMachO() && !useAAPCSForMachO(Triple)) in getDefaultFloatABI()
343 case llvm::Triple::NetBSD: in getDefaultFloatABI()
344 switch (Triple.getEnvironment()) { in getDefaultFloatABI()
345 case llvm::Triple::EABIHF: in getDefaultFloatABI()
346 case llvm::Triple::GNUEABIHF: in getDefaultFloatABI()
353 case llvm::Triple::FreeBSD: in getDefaultFloatABI()
354 switch (Triple.getEnvironment()) { in getDefaultFloatABI()
355 case llvm::Triple::GNUEABIHF: in getDefaultFloatABI()
363 case llvm::Triple::OpenBSD: in getDefaultFloatABI()
367 switch (Triple.getEnvironment()) { in getDefaultFloatABI()
368 case llvm::Triple::GNUEABIHF: in getDefaultFloatABI()
369 case llvm::Triple::MuslEABIHF: in getDefaultFloatABI()
370 case llvm::Triple::EABIHF: in getDefaultFloatABI()
372 case llvm::Triple::GNUEABI: in getDefaultFloatABI()
373 case llvm::Triple::MuslEABI: in getDefaultFloatABI()
374 case llvm::Triple::EABI: in getDefaultFloatABI()
377 case llvm::Triple::Android: in getDefaultFloatABI()
388 arm::FloatABI arm::getARMFloatABI(const Driver &D, const llvm::Triple &Triple, in getARMFloatABI() argument
413 ABI = arm::getDefaultFloatABI(Triple); in getARMFloatABI()
417 if (Triple.isOSBinFormatMachO() && in getARMFloatABI()
418 Triple.getSubArch() == llvm::Triple::ARMSubArch_v7em) in getARMFloatABI()
423 if (Triple.getOS() != llvm::Triple::UnknownOS || in getARMFloatABI()
424 !Triple.isOSBinFormatMachO()) in getARMFloatABI()
439 void arm::getARMTargetFeatures(const Driver &D, const llvm::Triple &Triple, in getARMTargetFeatures() argument
444 arm::FloatABI ABI = arm::getARMFloatABI(D, Triple, Args); in getARMTargetFeatures()
496 if (getReadTPMode(D, Args, Triple, ForAS) == ReadTPMode::Cp15) in getARMTargetFeatures()
524 ExtensionFeatures, Triple, ArchArgFPUID); in getARMTargetFeatures()
530 Triple, ArchArgFPUID); in getARMTargetFeatures()
550 Triple, CPUArgFPUID); in getARMTargetFeatures()
566 } else if (Triple.isAndroid() && getARMSubArchVersionNumber(Triple) >= 7) { in getARMTargetFeatures()
574 std::string CPU = arm::getARMTargetCPU(CPUName, ArchName, Triple); in getARMTargetFeatures()
576 arm::getLLVMArchKindForARM(CPU, ArchName, Triple); in getARMTargetFeatures()
604 if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v8_4a) { in getARMTargetFeatures()
702 arm::getARMTargetCPU(CPUName, ArchName, Triple), ArchName, Triple); in getARMTargetFeatures()
770 } else if (KernelOrKext && (!Triple.isiOS() || Triple.isOSVersionLT(6)) && in getARMTargetFeatures()
771 !Triple.isWatchOS()) { in getARMTargetFeatures()
782 if (getARMSubArchVersionNumber(Triple) < 7 && in getARMTargetFeatures()
783 llvm::ARM::parseArch(Triple.getArchName()) != llvm::ARM::ArchKind::ARMV6T2) in getARMTargetFeatures()
784 D.Diag(diag::err_target_unsupported_execute_only) << Triple.getArchName(); in getARMTargetFeatures()
806 if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) in getARMTargetFeatures()
810 else if (Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v8m_baseline) in getARMTargetFeatures()
829 int VersionNum = getARMSubArchVersionNumber(Triple); in getARMTargetFeatures()
830 if (Triple.isOSDarwin() || Triple.isOSNetBSD()) { in getARMTargetFeatures()
832 Triple.getSubArch() == llvm::Triple::SubArchType::ARMSubArch_v6m) in getARMTargetFeatures()
834 } else if (Triple.isOSLinux() || Triple.isOSNaCl() || in getARMTargetFeatures()
835 Triple.isOSWindows()) { in getARMTargetFeatures()
894 if (!(isARMAProfile(Triple) && getARMSubArchVersionNumber(Triple) >= 7)) in getARMTargetFeatures()
911 std::string arm::getARMArch(StringRef Arch, const llvm::Triple &Triple) { in getARMArch() argument
916 MArch = std::string(Triple.getArchName()); in getARMArch()
924 StringRef Suffix = arm::getLLVMArchSuffixForARM(CPU, MArch, Triple); in getARMArch()
938 StringRef arm::getARMCPUForMArch(StringRef Arch, const llvm::Triple &Triple) { in getARMCPUForMArch() argument
939 std::string MArch = getARMArch(Arch, Triple); in getARMCPUForMArch()
947 return Triple.getARMCPUForArch(MArch); in getARMCPUForMArch()
952 const llvm::Triple &Triple) { in getARMTargetCPU() argument
964 return std::string(getARMCPUForMArch(Arch, Triple)); in getARMTargetCPU()
972 const llvm::Triple &Triple) { in getLLVMArchKindForARM() argument
975 std::string ARMArch = tools::arm::getARMArch(Arch, Triple); in getLLVMArchKindForARM()
980 ArchKind = llvm::ARM::parseCPUArch(Triple.getARMCPUForArch(ARMArch)); in getLLVMArchKindForARM()
995 const llvm::Triple &Triple) { in getLLVMArchSuffixForARM() argument
996 llvm::ARM::ArchKind ArchKind = getLLVMArchKindForARM(CPU, Arch, Triple); in getLLVMArchSuffixForARM()
1003 const llvm::Triple &Triple) { in appendBE8LinkFlag() argument
1009 if (arm::getARMSubArchVersionNumber(Triple) >= 7 || arm::isARMMProfile(Triple)) in appendBE8LinkFlag()