Lines Matching full:triple
10 // target triple.
47 #include "llvm/TargetParser/Triple.h"
112 std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple, in AllocateTarget() argument
114 llvm::Triple::OSType os = Triple.getOS(); in AllocateTarget()
116 switch (Triple.getArch()) { in AllocateTarget()
120 case llvm::Triple::arc: in AllocateTarget()
121 return std::make_unique<ARCTargetInfo>(Triple, Opts); in AllocateTarget()
123 case llvm::Triple::xcore: in AllocateTarget()
124 return std::make_unique<XCoreTargetInfo>(Triple, Opts); in AllocateTarget()
126 case llvm::Triple::hexagon: in AllocateTarget()
127 if (os == llvm::Triple::Linux && in AllocateTarget()
128 Triple.getEnvironment() == llvm::Triple::Musl) in AllocateTarget()
129 return std::make_unique<LinuxTargetInfo<HexagonTargetInfo>>(Triple, Opts); in AllocateTarget()
130 return std::make_unique<HexagonTargetInfo>(Triple, Opts); in AllocateTarget()
132 case llvm::Triple::lanai: in AllocateTarget()
133 return std::make_unique<LanaiTargetInfo>(Triple, Opts); in AllocateTarget()
135 case llvm::Triple::aarch64_32: in AllocateTarget()
136 if (Triple.isOSDarwin()) in AllocateTarget()
137 return std::make_unique<DarwinAArch64TargetInfo>(Triple, Opts); in AllocateTarget()
140 case llvm::Triple::aarch64: in AllocateTarget()
141 if (Triple.isOSDarwin()) in AllocateTarget()
142 return std::make_unique<DarwinAArch64TargetInfo>(Triple, Opts); in AllocateTarget()
145 case llvm::Triple::FreeBSD: in AllocateTarget()
146 return std::make_unique<FreeBSDTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
148 case llvm::Triple::Fuchsia: in AllocateTarget()
149 return std::make_unique<FuchsiaTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
151 case llvm::Triple::Haiku: in AllocateTarget()
152 return std::make_unique<HaikuTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
154 case llvm::Triple::Linux: in AllocateTarget()
155 switch (Triple.getEnvironment()) { in AllocateTarget()
157 return std::make_unique<LinuxTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
159 case llvm::Triple::OpenHOS: in AllocateTarget()
160 return std::make_unique<OHOSTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
163 case llvm::Triple::NetBSD: in AllocateTarget()
164 return std::make_unique<NetBSDTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
166 case llvm::Triple::OpenBSD: in AllocateTarget()
167 return std::make_unique<OpenBSDTargetInfo<AArch64leTargetInfo>>(Triple, in AllocateTarget()
169 case llvm::Triple::Win32: in AllocateTarget()
170 switch (Triple.getEnvironment()) { in AllocateTarget()
171 case llvm::Triple::GNU: in AllocateTarget()
172 return std::make_unique<MinGWARM64TargetInfo>(Triple, Opts); in AllocateTarget()
173 case llvm::Triple::MSVC: in AllocateTarget()
175 return std::make_unique<MicrosoftARM64TargetInfo>(Triple, Opts); in AllocateTarget()
178 return std::make_unique<AArch64leTargetInfo>(Triple, Opts); in AllocateTarget()
181 case llvm::Triple::aarch64_be: in AllocateTarget()
183 case llvm::Triple::FreeBSD: in AllocateTarget()
184 return std::make_unique<FreeBSDTargetInfo<AArch64beTargetInfo>>(Triple, in AllocateTarget()
186 case llvm::Triple::Fuchsia: in AllocateTarget()
187 return std::make_unique<FuchsiaTargetInfo<AArch64beTargetInfo>>(Triple, in AllocateTarget()
189 case llvm::Triple::Linux: in AllocateTarget()
190 return std::make_unique<LinuxTargetInfo<AArch64beTargetInfo>>(Triple, in AllocateTarget()
192 case llvm::Triple::NetBSD: in AllocateTarget()
193 return std::make_unique<NetBSDTargetInfo<AArch64beTargetInfo>>(Triple, in AllocateTarget()
196 return std::make_unique<AArch64beTargetInfo>(Triple, Opts); in AllocateTarget()
199 case llvm::Triple::arm: in AllocateTarget()
200 case llvm::Triple::thumb: in AllocateTarget()
201 if (Triple.isOSBinFormatMachO()) in AllocateTarget()
202 return std::make_unique<DarwinARMTargetInfo>(Triple, Opts); in AllocateTarget()
205 case llvm::Triple::Linux: in AllocateTarget()
206 switch (Triple.getEnvironment()) { in AllocateTarget()
208 return std::make_unique<LinuxTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
209 case llvm::Triple::OpenHOS: in AllocateTarget()
210 return std::make_unique<OHOSTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
212 case llvm::Triple::LiteOS: in AllocateTarget()
213 return std::make_unique<OHOSTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
214 case llvm::Triple::FreeBSD: in AllocateTarget()
215 return std::make_unique<FreeBSDTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
216 case llvm::Triple::NetBSD: in AllocateTarget()
217 return std::make_unique<NetBSDTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
218 case llvm::Triple::OpenBSD: in AllocateTarget()
219 return std::make_unique<OpenBSDTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
220 case llvm::Triple::RTEMS: in AllocateTarget()
221 return std::make_unique<RTEMSTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
222 case llvm::Triple::Haiku: in AllocateTarget()
223 return std::make_unique<HaikuTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
224 case llvm::Triple::NaCl: in AllocateTarget()
225 return std::make_unique<NaClTargetInfo<ARMleTargetInfo>>(Triple, Opts); in AllocateTarget()
226 case llvm::Triple::Win32: in AllocateTarget()
227 switch (Triple.getEnvironment()) { in AllocateTarget()
228 case llvm::Triple::Cygnus: in AllocateTarget()
229 return std::make_unique<CygwinARMTargetInfo>(Triple, Opts); in AllocateTarget()
230 case llvm::Triple::GNU: in AllocateTarget()
231 return std::make_unique<MinGWARMTargetInfo>(Triple, Opts); in AllocateTarget()
232 case llvm::Triple::Itanium: in AllocateTarget()
233 return std::make_unique<ItaniumWindowsARMleTargetInfo>(Triple, Opts); in AllocateTarget()
234 case llvm::Triple::MSVC: in AllocateTarget()
236 return std::make_unique<MicrosoftARMleTargetInfo>(Triple, Opts); in AllocateTarget()
239 return std::make_unique<ARMleTargetInfo>(Triple, Opts); in AllocateTarget()
242 case llvm::Triple::armeb: in AllocateTarget()
243 case llvm::Triple::thumbeb: in AllocateTarget()
244 if (Triple.isOSDarwin()) in AllocateTarget()
245 return std::make_unique<DarwinARMTargetInfo>(Triple, Opts); in AllocateTarget()
248 case llvm::Triple::Linux: in AllocateTarget()
249 return std::make_unique<LinuxTargetInfo<ARMbeTargetInfo>>(Triple, Opts); in AllocateTarget()
250 case llvm::Triple::NetBSD: in AllocateTarget()
251 return std::make_unique<NetBSDTargetInfo<ARMbeTargetInfo>>(Triple, Opts); in AllocateTarget()
252 case llvm::Triple::RTEMS: in AllocateTarget()
253 return std::make_unique<RTEMSTargetInfo<ARMbeTargetInfo>>(Triple, Opts); in AllocateTarget()
254 case llvm::Triple::NaCl: in AllocateTarget()
255 return std::make_unique<NaClTargetInfo<ARMbeTargetInfo>>(Triple, Opts); in AllocateTarget()
257 return std::make_unique<ARMbeTargetInfo>(Triple, Opts); in AllocateTarget()
260 case llvm::Triple::avr: in AllocateTarget()
261 return std::make_unique<AVRTargetInfo>(Triple, Opts); in AllocateTarget()
262 case llvm::Triple::bpfeb: in AllocateTarget()
263 case llvm::Triple::bpfel: in AllocateTarget()
264 return std::make_unique<BPFTargetInfo>(Triple, Opts); in AllocateTarget()
266 case llvm::Triple::msp430: in AllocateTarget()
267 return std::make_unique<MSP430TargetInfo>(Triple, Opts); in AllocateTarget()
269 case llvm::Triple::mips: in AllocateTarget()
271 case llvm::Triple::Linux: in AllocateTarget()
272 return std::make_unique<LinuxTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
273 case llvm::Triple::RTEMS: in AllocateTarget()
274 return std::make_unique<RTEMSTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
275 case llvm::Triple::FreeBSD: in AllocateTarget()
276 return std::make_unique<FreeBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
277 case llvm::Triple::NetBSD: in AllocateTarget()
278 return std::make_unique<NetBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
280 return std::make_unique<MipsTargetInfo>(Triple, Opts); in AllocateTarget()
283 case llvm::Triple::mipsel: in AllocateTarget()
285 case llvm::Triple::Linux: in AllocateTarget()
286 switch (Triple.getEnvironment()) { in AllocateTarget()
288 return std::make_unique<LinuxTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
289 case llvm::Triple::OpenHOS: in AllocateTarget()
290 return std::make_unique<OHOSTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
292 case llvm::Triple::RTEMS: in AllocateTarget()
293 return std::make_unique<RTEMSTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
294 case llvm::Triple::FreeBSD: in AllocateTarget()
295 return std::make_unique<FreeBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
296 case llvm::Triple::NetBSD: in AllocateTarget()
297 return std::make_unique<NetBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
298 case llvm::Triple::NaCl: in AllocateTarget()
299 return std::make_unique<NaClTargetInfo<NaClMips32TargetInfo>>(Triple, in AllocateTarget()
302 return std::make_unique<MipsTargetInfo>(Triple, Opts); in AllocateTarget()
305 case llvm::Triple::mips64: in AllocateTarget()
307 case llvm::Triple::Linux: in AllocateTarget()
308 return std::make_unique<LinuxTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
309 case llvm::Triple::RTEMS: in AllocateTarget()
310 return std::make_unique<RTEMSTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
311 case llvm::Triple::FreeBSD: in AllocateTarget()
312 return std::make_unique<FreeBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
313 case llvm::Triple::NetBSD: in AllocateTarget()
314 return std::make_unique<NetBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
315 case llvm::Triple::OpenBSD: in AllocateTarget()
316 return std::make_unique<OpenBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
318 return std::make_unique<MipsTargetInfo>(Triple, Opts); in AllocateTarget()
321 case llvm::Triple::mips64el: in AllocateTarget()
323 case llvm::Triple::Linux: in AllocateTarget()
324 return std::make_unique<LinuxTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
325 case llvm::Triple::RTEMS: in AllocateTarget()
326 return std::make_unique<RTEMSTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
327 case llvm::Triple::FreeBSD: in AllocateTarget()
328 return std::make_unique<FreeBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
329 case llvm::Triple::NetBSD: in AllocateTarget()
330 return std::make_unique<NetBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
331 case llvm::Triple::OpenBSD: in AllocateTarget()
332 return std::make_unique<OpenBSDTargetInfo<MipsTargetInfo>>(Triple, Opts); in AllocateTarget()
334 return std::make_unique<MipsTargetInfo>(Triple, Opts); in AllocateTarget()
337 case llvm::Triple::m68k: in AllocateTarget()
339 case llvm::Triple::Linux: in AllocateTarget()
340 return std::make_unique<LinuxTargetInfo<M68kTargetInfo>>(Triple, Opts); in AllocateTarget()
341 case llvm::Triple::NetBSD: in AllocateTarget()
342 return std::make_unique<NetBSDTargetInfo<M68kTargetInfo>>(Triple, Opts); in AllocateTarget()
344 return std::make_unique<M68kTargetInfo>(Triple, Opts); in AllocateTarget()
347 case llvm::Triple::le32: in AllocateTarget()
349 case llvm::Triple::NaCl: in AllocateTarget()
350 return std::make_unique<NaClTargetInfo<PNaClTargetInfo>>(Triple, Opts); in AllocateTarget()
355 case llvm::Triple::le64: in AllocateTarget()
356 return std::make_unique<Le64TargetInfo>(Triple, Opts); in AllocateTarget()
358 case llvm::Triple::ppc: in AllocateTarget()
360 case llvm::Triple::Linux: in AllocateTarget()
361 return std::make_unique<LinuxTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
362 case llvm::Triple::FreeBSD: in AllocateTarget()
363 return std::make_unique<FreeBSDTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
364 case llvm::Triple::NetBSD: in AllocateTarget()
365 return std::make_unique<NetBSDTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
366 case llvm::Triple::OpenBSD: in AllocateTarget()
367 return std::make_unique<OpenBSDTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
368 case llvm::Triple::RTEMS: in AllocateTarget()
369 return std::make_unique<RTEMSTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
370 case llvm::Triple::AIX: in AllocateTarget()
371 return std::make_unique<AIXPPC32TargetInfo>(Triple, Opts); in AllocateTarget()
373 return std::make_unique<PPC32TargetInfo>(Triple, Opts); in AllocateTarget()
376 case llvm::Triple::ppcle: in AllocateTarget()
378 case llvm::Triple::Linux: in AllocateTarget()
379 return std::make_unique<LinuxTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
380 case llvm::Triple::FreeBSD: in AllocateTarget()
381 return std::make_unique<FreeBSDTargetInfo<PPC32TargetInfo>>(Triple, Opts); in AllocateTarget()
383 return std::make_unique<PPC32TargetInfo>(Triple, Opts); in AllocateTarget()
386 case llvm::Triple::ppc64: in AllocateTarget()
388 case llvm::Triple::Linux: in AllocateTarget()
389 return std::make_unique<LinuxTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
390 case llvm::Triple::Lv2: in AllocateTarget()
391 return std::make_unique<PS3PPUTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
392 case llvm::Triple::FreeBSD: in AllocateTarget()
393 return std::make_unique<FreeBSDTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
394 case llvm::Triple::NetBSD: in AllocateTarget()
395 return std::make_unique<NetBSDTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
396 case llvm::Triple::OpenBSD: in AllocateTarget()
397 return std::make_unique<OpenBSDTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
398 case llvm::Triple::AIX: in AllocateTarget()
399 return std::make_unique<AIXPPC64TargetInfo>(Triple, Opts); in AllocateTarget()
401 return std::make_unique<PPC64TargetInfo>(Triple, Opts); in AllocateTarget()
404 case llvm::Triple::ppc64le: in AllocateTarget()
406 case llvm::Triple::Linux: in AllocateTarget()
407 return std::make_unique<LinuxTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
408 case llvm::Triple::FreeBSD: in AllocateTarget()
409 return std::make_unique<FreeBSDTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
410 case llvm::Triple::NetBSD: in AllocateTarget()
411 return std::make_unique<NetBSDTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
412 case llvm::Triple::OpenBSD: in AllocateTarget()
413 return std::make_unique<OpenBSDTargetInfo<PPC64TargetInfo>>(Triple, Opts); in AllocateTarget()
415 return std::make_unique<PPC64TargetInfo>(Triple, Opts); in AllocateTarget()
418 case llvm::Triple::nvptx: in AllocateTarget()
419 return std::make_unique<NVPTXTargetInfo>(Triple, Opts, in AllocateTarget()
421 case llvm::Triple::nvptx64: in AllocateTarget()
422 return std::make_unique<NVPTXTargetInfo>(Triple, Opts, in AllocateTarget()
425 case llvm::Triple::amdgcn: in AllocateTarget()
426 case llvm::Triple::r600: in AllocateTarget()
427 return std::make_unique<AMDGPUTargetInfo>(Triple, Opts); in AllocateTarget()
429 case llvm::Triple::riscv32: in AllocateTarget()
431 case llvm::Triple::NetBSD: in AllocateTarget()
432 return std::make_unique<NetBSDTargetInfo<RISCV32TargetInfo>>(Triple, in AllocateTarget()
434 case llvm::Triple::Linux: in AllocateTarget()
435 return std::make_unique<LinuxTargetInfo<RISCV32TargetInfo>>(Triple, Opts); in AllocateTarget()
437 return std::make_unique<RISCV32TargetInfo>(Triple, Opts); in AllocateTarget()
440 case llvm::Triple::riscv64: in AllocateTarget()
442 case llvm::Triple::FreeBSD: in AllocateTarget()
443 return std::make_unique<FreeBSDTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
445 case llvm::Triple::NetBSD: in AllocateTarget()
446 return std::make_unique<NetBSDTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
448 case llvm::Triple::OpenBSD: in AllocateTarget()
449 return std::make_unique<OpenBSDTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
451 case llvm::Triple::Fuchsia: in AllocateTarget()
452 return std::make_unique<FuchsiaTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
454 case llvm::Triple::Haiku: in AllocateTarget()
455 return std::make_unique<HaikuTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
457 case llvm::Triple::Linux: in AllocateTarget()
458 switch (Triple.getEnvironment()) { in AllocateTarget()
460 return std::make_unique<LinuxTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
462 case llvm::Triple::OpenHOS: in AllocateTarget()
463 return std::make_unique<OHOSTargetInfo<RISCV64TargetInfo>>(Triple, in AllocateTarget()
467 return std::make_unique<RISCV64TargetInfo>(Triple, Opts); in AllocateTarget()
470 case llvm::Triple::sparc: in AllocateTarget()
472 case llvm::Triple::Linux: in AllocateTarget()
473 return std::make_unique<LinuxTargetInfo<SparcV8TargetInfo>>(Triple, Opts); in AllocateTarget()
474 case llvm::Triple::Solaris: in AllocateTarget()
475 return std::make_unique<SolarisTargetInfo<SparcV8TargetInfo>>(Triple, in AllocateTarget()
477 case llvm::Triple::NetBSD: in AllocateTarget()
478 return std::make_unique<NetBSDTargetInfo<SparcV8TargetInfo>>(Triple, in AllocateTarget()
480 case llvm::Triple::RTEMS: in AllocateTarget()
481 return std::make_unique<RTEMSTargetInfo<SparcV8TargetInfo>>(Triple, Opts); in AllocateTarget()
483 return std::make_unique<SparcV8TargetInfo>(Triple, Opts); in AllocateTarget()
486 case llvm::Triple::sparcel: in AllocateTarget()
488 case llvm::Triple::Linux: in AllocateTarget()
489 return std::make_unique<LinuxTargetInfo<SparcV8elTargetInfo>>(Triple, in AllocateTarget()
491 case llvm::Triple::RTEMS: in AllocateTarget()
492 return std::make_unique<RTEMSTargetInfo<SparcV8elTargetInfo>>(Triple, in AllocateTarget()
495 return std::make_unique<SparcV8elTargetInfo>(Triple, Opts); in AllocateTarget()
498 case llvm::Triple::sparcv9: in AllocateTarget()
500 case llvm::Triple::Linux: in AllocateTarget()
501 return std::make_unique<LinuxTargetInfo<SparcV9TargetInfo>>(Triple, Opts); in AllocateTarget()
502 case llvm::Triple::Solaris: in AllocateTarget()
503 return std::make_unique<SolarisTargetInfo<SparcV9TargetInfo>>(Triple, in AllocateTarget()
505 case llvm::Triple::NetBSD: in AllocateTarget()
506 return std::make_unique<NetBSDTargetInfo<SparcV9TargetInfo>>(Triple, in AllocateTarget()
508 case llvm::Triple::OpenBSD: in AllocateTarget()
509 return std::make_unique<OpenBSDTargetInfo<SparcV9TargetInfo>>(Triple, in AllocateTarget()
511 case llvm::Triple::FreeBSD: in AllocateTarget()
512 return std::make_unique<FreeBSDTargetInfo<SparcV9TargetInfo>>(Triple, in AllocateTarget()
515 return std::make_unique<SparcV9TargetInfo>(Triple, Opts); in AllocateTarget()
518 case llvm::Triple::systemz: in AllocateTarget()
520 case llvm::Triple::Linux: in AllocateTarget()
521 return std::make_unique<LinuxTargetInfo<SystemZTargetInfo>>(Triple, Opts); in AllocateTarget()
522 case llvm::Triple::ZOS: in AllocateTarget()
523 return std::make_unique<ZOSTargetInfo<SystemZTargetInfo>>(Triple, Opts); in AllocateTarget()
525 return std::make_unique<SystemZTargetInfo>(Triple, Opts); in AllocateTarget()
528 case llvm::Triple::tce: in AllocateTarget()
529 return std::make_unique<TCETargetInfo>(Triple, Opts); in AllocateTarget()
531 case llvm::Triple::tcele: in AllocateTarget()
532 return std::make_unique<TCELETargetInfo>(Triple, Opts); in AllocateTarget()
534 case llvm::Triple::x86: in AllocateTarget()
535 if (Triple.isOSDarwin()) in AllocateTarget()
536 return std::make_unique<DarwinI386TargetInfo>(Triple, Opts); in AllocateTarget()
539 case llvm::Triple::Linux: { in AllocateTarget()
540 switch (Triple.getEnvironment()) { in AllocateTarget()
542 return std::make_unique<LinuxTargetInfo<X86_32TargetInfo>>(Triple, in AllocateTarget()
544 case llvm::Triple::Android: in AllocateTarget()
545 return std::make_unique<AndroidX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
548 case llvm::Triple::DragonFly: in AllocateTarget()
549 return std::make_unique<DragonFlyBSDTargetInfo<X86_32TargetInfo>>(Triple, in AllocateTarget()
551 case llvm::Triple::NetBSD: in AllocateTarget()
552 return std::make_unique<NetBSDI386TargetInfo>(Triple, Opts); in AllocateTarget()
553 case llvm::Triple::OpenBSD: in AllocateTarget()
554 return std::make_unique<OpenBSDI386TargetInfo>(Triple, Opts); in AllocateTarget()
555 case llvm::Triple::FreeBSD: in AllocateTarget()
556 return std::make_unique<FreeBSDTargetInfo<X86_32TargetInfo>>(Triple, in AllocateTarget()
558 case llvm::Triple::Fuchsia: in AllocateTarget()
559 return std::make_unique<FuchsiaTargetInfo<X86_32TargetInfo>>(Triple, in AllocateTarget()
561 case llvm::Triple::KFreeBSD: in AllocateTarget()
562 return std::make_unique<KFreeBSDTargetInfo<X86_32TargetInfo>>(Triple, in AllocateTarget()
564 case llvm::Triple::Solaris: in AllocateTarget()
565 return std::make_unique<SolarisTargetInfo<X86_32TargetInfo>>(Triple, in AllocateTarget()
567 case llvm::Triple::Win32: { in AllocateTarget()
568 switch (Triple.getEnvironment()) { in AllocateTarget()
569 case llvm::Triple::Cygnus: in AllocateTarget()
570 return std::make_unique<CygwinX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
571 case llvm::Triple::GNU: in AllocateTarget()
572 return std::make_unique<MinGWX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
573 case llvm::Triple::Itanium: in AllocateTarget()
574 case llvm::Triple::MSVC: in AllocateTarget()
576 return std::make_unique<MicrosoftX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
579 case llvm::Triple::Haiku: in AllocateTarget()
580 return std::make_unique<HaikuX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
581 case llvm::Triple::RTEMS: in AllocateTarget()
582 return std::make_unique<RTEMSX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
583 case llvm::Triple::NaCl: in AllocateTarget()
584 return std::make_unique<NaClTargetInfo<X86_32TargetInfo>>(Triple, Opts); in AllocateTarget()
585 case llvm::Triple::ELFIAMCU: in AllocateTarget()
586 return std::make_unique<MCUX86_32TargetInfo>(Triple, Opts); in AllocateTarget()
587 case llvm::Triple::Hurd: in AllocateTarget()
588 return std::make_unique<HurdTargetInfo<X86_32TargetInfo>>(Triple, Opts); in AllocateTarget()
590 return std::make_unique<X86_32TargetInfo>(Triple, Opts); in AllocateTarget()
593 case llvm::Triple::x86_64: in AllocateTarget()
594 if (Triple.isOSDarwin() || Triple.isOSBinFormatMachO()) in AllocateTarget()
595 return std::make_unique<DarwinX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
598 case llvm::Triple::Linux: { in AllocateTarget()
599 switch (Triple.getEnvironment()) { in AllocateTarget()
601 return std::make_unique<LinuxTargetInfo<X86_64TargetInfo>>(Triple, in AllocateTarget()
603 case llvm::Triple::Android: in AllocateTarget()
604 return std::make_unique<AndroidX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
605 case llvm::Triple::OpenHOS: in AllocateTarget()
606 return std::make_unique<OHOSX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
609 case llvm::Triple::DragonFly: in AllocateTarget()
610 return std::make_unique<DragonFlyBSDTargetInfo<X86_64TargetInfo>>(Triple, in AllocateTarget()
612 case llvm::Triple::NetBSD: in AllocateTarget()
613 return std::make_unique<NetBSDTargetInfo<X86_64TargetInfo>>(Triple, Opts); in AllocateTarget()
614 case llvm::Triple::OpenBSD: in AllocateTarget()
615 return std::make_unique<OpenBSDX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
616 case llvm::Triple::FreeBSD: in AllocateTarget()
617 return std::make_unique<FreeBSDTargetInfo<X86_64TargetInfo>>(Triple, in AllocateTarget()
619 case llvm::Triple::Fuchsia: in AllocateTarget()
620 return std::make_unique<FuchsiaTargetInfo<X86_64TargetInfo>>(Triple, in AllocateTarget()
622 case llvm::Triple::KFreeBSD: in AllocateTarget()
623 return std::make_unique<KFreeBSDTargetInfo<X86_64TargetInfo>>(Triple, in AllocateTarget()
625 case llvm::Triple::Solaris: in AllocateTarget()
626 return std::make_unique<SolarisTargetInfo<X86_64TargetInfo>>(Triple, in AllocateTarget()
628 case llvm::Triple::Win32: { in AllocateTarget()
629 switch (Triple.getEnvironment()) { in AllocateTarget()
630 case llvm::Triple::Cygnus: in AllocateTarget()
631 return std::make_unique<CygwinX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
632 case llvm::Triple::GNU: in AllocateTarget()
633 return std::make_unique<MinGWX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
634 case llvm::Triple::MSVC: in AllocateTarget()
636 return std::make_unique<MicrosoftX86_64TargetInfo>(Triple, Opts); in AllocateTarget()
639 case llvm::Triple::Haiku: in AllocateTarget()
640 return std::make_unique<HaikuTargetInfo<X86_64TargetInfo>>(Triple, Opts); in AllocateTarget()
641 case llvm::Triple::NaCl: in AllocateTarget()
642 return std::make_unique<NaClTargetInfo<X86_64TargetInfo>>(Triple, Opts); in AllocateTarget()
643 case llvm::Triple::PS4: in AllocateTarget()
644 return std::make_unique<PS4OSTargetInfo<X86_64TargetInfo>>(Triple, Opts); in AllocateTarget()
645 case llvm::Triple::PS5: in AllocateTarget()
646 return std::make_unique<PS5OSTargetInfo<X86_64TargetInfo>>(Triple, Opts); in AllocateTarget()
647 case llvm::Triple::Hurd: in AllocateTarget()
648 return std::make_unique<HurdTargetInfo<X86_64TargetInfo>>(Triple, Opts); in AllocateTarget()
650 return std::make_unique<X86_64TargetInfo>(Triple, Opts); in AllocateTarget()
653 case llvm::Triple::spir: { in AllocateTarget()
654 if (os != llvm::Triple::UnknownOS || in AllocateTarget()
655 Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) in AllocateTarget()
657 return std::make_unique<SPIR32TargetInfo>(Triple, Opts); in AllocateTarget()
659 case llvm::Triple::spir64: { in AllocateTarget()
660 if (os != llvm::Triple::UnknownOS || in AllocateTarget()
661 Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) in AllocateTarget()
663 return std::make_unique<SPIR64TargetInfo>(Triple, Opts); in AllocateTarget()
665 case llvm::Triple::spirv: { in AllocateTarget()
666 return std::make_unique<SPIRVTargetInfo>(Triple, Opts); in AllocateTarget()
668 case llvm::Triple::spirv32: { in AllocateTarget()
669 if (os != llvm::Triple::UnknownOS || in AllocateTarget()
670 Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) in AllocateTarget()
672 return std::make_unique<SPIRV32TargetInfo>(Triple, Opts); in AllocateTarget()
674 case llvm::Triple::spirv64: { in AllocateTarget()
675 if (os != llvm::Triple::UnknownOS || in AllocateTarget()
676 Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) { in AllocateTarget()
677 if (os == llvm::Triple::OSType::AMDHSA) in AllocateTarget()
678 return std::make_unique<SPIRV64AMDGCNTargetInfo>(Triple, Opts); in AllocateTarget()
681 return std::make_unique<SPIRV64TargetInfo>(Triple, Opts); in AllocateTarget()
683 case llvm::Triple::wasm32: in AllocateTarget()
684 if (Triple.getSubArch() != llvm::Triple::NoSubArch || in AllocateTarget()
685 Triple.getVendor() != llvm::Triple::UnknownVendor || in AllocateTarget()
686 !Triple.isOSBinFormatWasm()) in AllocateTarget()
689 case llvm::Triple::WASI: in AllocateTarget()
690 return std::make_unique<WASITargetInfo<WebAssembly32TargetInfo>>(Triple, in AllocateTarget()
692 case llvm::Triple::Emscripten: in AllocateTarget()
694 Triple, Opts); in AllocateTarget()
695 case llvm::Triple::UnknownOS: in AllocateTarget()
697 Triple, Opts); in AllocateTarget()
701 case llvm::Triple::wasm64: in AllocateTarget()
702 if (Triple.getSubArch() != llvm::Triple::NoSubArch || in AllocateTarget()
703 Triple.getVendor() != llvm::Triple::UnknownVendor || in AllocateTarget()
704 !Triple.isOSBinFormatWasm()) in AllocateTarget()
707 case llvm::Triple::WASI: in AllocateTarget()
708 return std::make_unique<WASITargetInfo<WebAssembly64TargetInfo>>(Triple, in AllocateTarget()
710 case llvm::Triple::Emscripten: in AllocateTarget()
712 Triple, Opts); in AllocateTarget()
713 case llvm::Triple::UnknownOS: in AllocateTarget()
715 Triple, Opts); in AllocateTarget()
720 case llvm::Triple::dxil: in AllocateTarget()
721 return std::make_unique<DirectXTargetInfo>(Triple, Opts); in AllocateTarget()
722 case llvm::Triple::renderscript32: in AllocateTarget()
723 return std::make_unique<LinuxTargetInfo<RenderScript32TargetInfo>>(Triple, in AllocateTarget()
725 case llvm::Triple::renderscript64: in AllocateTarget()
726 return std::make_unique<LinuxTargetInfo<RenderScript64TargetInfo>>(Triple, in AllocateTarget()
729 case llvm::Triple::ve: in AllocateTarget()
730 return std::make_unique<LinuxTargetInfo<VETargetInfo>>(Triple, Opts); in AllocateTarget()
732 case llvm::Triple::csky: in AllocateTarget()
734 case llvm::Triple::Linux: in AllocateTarget()
735 return std::make_unique<LinuxTargetInfo<CSKYTargetInfo>>(Triple, Opts); in AllocateTarget()
737 return std::make_unique<CSKYTargetInfo>(Triple, Opts); in AllocateTarget()
739 case llvm::Triple::loongarch32: in AllocateTarget()
741 case llvm::Triple::Linux: in AllocateTarget()
742 return std::make_unique<LinuxTargetInfo<LoongArch32TargetInfo>>(Triple, in AllocateTarget()
745 return std::make_unique<LoongArch32TargetInfo>(Triple, Opts); in AllocateTarget()
747 case llvm::Triple::loongarch64: in AllocateTarget()
749 case llvm::Triple::Linux: in AllocateTarget()
750 return std::make_unique<LinuxTargetInfo<LoongArch64TargetInfo>>(Triple, in AllocateTarget()
753 return std::make_unique<LoongArch64TargetInfo>(Triple, Opts); in AllocateTarget()
766 llvm::Triple Triple(llvm::Triple::normalize(Opts->Triple)); in CreateTargetInfo() local
769 std::unique_ptr<TargetInfo> Target = AllocateTarget(Triple, *Opts); in CreateTargetInfo()
771 Diags.Report(diag::err_target_unknown_triple) << Triple.str(); in CreateTargetInfo()
839 llvm::Triple(Opts->DarwinTargetVariantTriple); in CreateTargetInfo()