Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(534)

Side by Side Diff: lib/Support/Triple.cpp

Issue 7730004: add llvm configure flags to enable/disable target OSes/Envs Base URL: https://llvm.org/svn/llvm-project/llvm/trunk/
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/MC/MCObjectFileInfo.cpp ('k') | lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===--- Triple.cpp - Target triple helper class --------------------------===// 1 //===--- Triple.cpp - Target triple helper class --------------------------===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 9
10 #include "llvm/ADT/Triple.h" 10 #include "llvm/ADT/Triple.h"
11 #include "llvm/ADT/SmallString.h" 11 #include "llvm/ADT/SmallString.h"
12 #include "llvm/ADT/STLExtras.h" 12 #include "llvm/ADT/STLExtras.h"
13 #include "llvm/Support/ErrorHandling.h"
13 #include <cstring> 14 #include <cstring>
14 using namespace llvm; 15 using namespace llvm;
15 16
16 const char *Triple::getArchTypeName(ArchType Kind) { 17 const char *Triple::getArchTypeName(ArchType Kind) {
17 switch (Kind) { 18 switch (Kind) {
18 case InvalidArch: return "<invalid>"; 19 case InvalidArch: return "<invalid>";
19 case UnknownArch: return "unknown"; 20 case UnknownArch: return "unknown";
20 21
21 case alpha: return "alpha"; 22 case alpha: return "alpha";
22 case arm: return "arm"; 23 case arm: return "arm";
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 else if (VendorName == "pc") 322 else if (VendorName == "pc")
322 return PC; 323 return PC;
323 else if (VendorName == "scei") 324 else if (VendorName == "scei")
324 return SCEI; 325 return SCEI;
325 else 326 else
326 return UnknownVendor; 327 return UnknownVendor;
327 } 328 }
328 329
329 Triple::OSType Triple::ParseOS(StringRef OSName) { 330 Triple::OSType Triple::ParseOS(StringRef OSName) {
330 if (OSName.startswith("auroraux")) 331 if (OSName.startswith("auroraux"))
332 #if defined(LLVM_ENABLED_TARGET_OS_AURORAUX)
331 return AuroraUX; 333 return AuroraUX;
334 #else
335 llvm_unreachable(
336 "ParseOS auroraux w/out LLVM_ENABLED_TARGET_OS_AURORAUX");
337 #endif
332 else if (OSName.startswith("cygwin")) 338 else if (OSName.startswith("cygwin"))
339 #if defined(LLVM_ENABLED_TARGET_OS_CYGWIN)
333 return Cygwin; 340 return Cygwin;
341 #else
342 llvm_unreachable("ParseOS cygwin w/out LLVM_ENABLED_TARGET_OS_CYGWIN");
343 #endif
334 else if (OSName.startswith("darwin")) 344 else if (OSName.startswith("darwin"))
345 #if defined(LLVM_ENABLED_TARGET_OS_DARWIN)
335 return Darwin; 346 return Darwin;
347 #else
348 llvm_unreachable("ParseOS darwin w/out LLVM_ENABLED_TARGET_OS_DARWIN");
349 #endif
336 else if (OSName.startswith("dragonfly")) 350 else if (OSName.startswith("dragonfly"))
351 #if defined(LLVM_ENABLED_TARGET_OS_DRAGONFLY)
337 return DragonFly; 352 return DragonFly;
353 #else
354 llvm_unreachable(
355 "ParseOS dragonfly w/out LLVM_ENABLED_TARGET_OS_DRAGONFLY");
356 #endif
338 else if (OSName.startswith("freebsd")) 357 else if (OSName.startswith("freebsd"))
358 #if defined(LLVM_ENABLED_TARGET_OS_FREEBSD)
339 return FreeBSD; 359 return FreeBSD;
360 #else
361 llvm_unreachable("ParseOS freebsd w/out LLVM_ENABLED_TARGET_OS_FREEBSD");
362 #endif
340 else if (OSName.startswith("ios")) 363 else if (OSName.startswith("ios"))
364 #if defined(LLVM_ENABLED_TARGET_OS_IOS)
341 return IOS; 365 return IOS;
366 #else
367 llvm_unreachable("ParseOS ios w/out LLVM_ENABLED_TARGET_OS_IOS");
368 #endif
342 else if (OSName.startswith("kfreebsd")) 369 else if (OSName.startswith("kfreebsd"))
370 #if defined(LLVM_ENABLED_TARGET_OS_KFREEBSD)
343 return KFreeBSD; 371 return KFreeBSD;
372 #else
373 llvm_unreachable("ParseOS kfreebsd w/out LLVM_ENABLED_TARGET_OS_KFREEBSD");
374 #endif
344 else if (OSName.startswith("linux")) 375 else if (OSName.startswith("linux"))
376 #if defined(LLVM_ENABLED_TARGET_OS_LINUX)
345 return Linux; 377 return Linux;
378 #else
379 llvm_unreachable("ParseOS linux w/out LLVM_ENABLED_TARGET_OS_LINUX");
380 #endif
346 else if (OSName.startswith("lv2")) 381 else if (OSName.startswith("lv2"))
382 #if defined(LLVM_ENABLED_TARGET_OS_LV2)
347 return Lv2; 383 return Lv2;
384 #else
385 llvm_unreachable("ParseOS lv2 w/out LLVM_ENABLED_TARGET_OS_LV2");
386 #endif
348 else if (OSName.startswith("macosx")) 387 else if (OSName.startswith("macosx"))
388 #if defined(LLVM_ENABLED_TARGET_OS_MACOSX)
349 return MacOSX; 389 return MacOSX;
390 #else
391 llvm_unreachable("ParseOS macosx w/out LLVM_ENABLED_TARGET_OS_MACOSX");
392 #endif
350 else if (OSName.startswith("mingw32")) 393 else if (OSName.startswith("mingw32"))
394 #if defined(LLVM_ENABLED_TARGET_OS_MINGW32)
351 return MinGW32; 395 return MinGW32;
396 #else
397 llvm_unreachable("ParseOS mingw32 w/out LLVM_ENABLED_TARGET_OS_MINGW32");
398 #endif
352 else if (OSName.startswith("netbsd")) 399 else if (OSName.startswith("netbsd"))
400 #if defined(LLVM_ENABLED_TARGET_OS_NETBSD)
353 return NetBSD; 401 return NetBSD;
402 #else
403 llvm_unreachable("ParseOS netbsd w/out LLVM_ENABLED_TARGET_OS_NETBSD");
404 #endif
354 else if (OSName.startswith("openbsd")) 405 else if (OSName.startswith("openbsd"))
406 #if defined(LLVM_ENABLED_TARGET_OS_OPENBSD)
355 return OpenBSD; 407 return OpenBSD;
408 #else
409 llvm_unreachable("ParseOS openbsd w/out LLVM_ENABLED_TARGET_OS_OPENBSD");
410 #endif
356 else if (OSName.startswith("psp")) 411 else if (OSName.startswith("psp"))
412 #if defined(LLVM_ENABLED_TARGET_OS_PSP)
357 return Psp; 413 return Psp;
414 #else
415 llvm_unreachable("ParseOS psp w/out LLVM_ENABLED_TARGET_OS_PSP");
416 #endif
358 else if (OSName.startswith("solaris")) 417 else if (OSName.startswith("solaris"))
418 #if defined(LLVM_ENABLED_TARGET_OS_SOLARIS)
359 return Solaris; 419 return Solaris;
420 #else
421 llvm_unreachable("ParseOS solaris w/out LLVM_ENABLED_TARGET_OS_SOLARIS");
422 #endif
360 else if (OSName.startswith("win32")) 423 else if (OSName.startswith("win32"))
424 #if defined(LLVM_ENABLED_TARGET_OS_WIN32)
361 return Win32; 425 return Win32;
426 #else
427 llvm_unreachable("ParseOS win32 w/out LLVM_ENABLED_TARGET_OS_WIN32");
428 #endif
362 else if (OSName.startswith("haiku")) 429 else if (OSName.startswith("haiku"))
430 #if defined(LLVM_ENABLED_TARGET_OS_HAIKU)
363 return Haiku; 431 return Haiku;
432 #else
433 llvm_unreachable("ParseOS haiku w/out LLVM_ENABLED_TARGET_OS_HAIKU");
434 #endif
364 else if (OSName.startswith("minix")) 435 else if (OSName.startswith("minix"))
436 #if defined(LLVM_ENABLED_TARGET_OS_MINIX)
365 return Minix; 437 return Minix;
438 #else
439 llvm_unreachable("ParseOS minix w/out LLVM_ENABLED_TARGET_OS_MINIX");
440 #endif
366 else if (OSName.startswith("rtems")) 441 else if (OSName.startswith("rtems"))
442 #if defined(LLVM_ENABLED_TARGET_OS_RTEMS)
367 return RTEMS; 443 return RTEMS;
444 #else
445 llvm_unreachable("ParseOS rtems w/out LLVM_ENABLED_TARGET_OS_RTEMS");
446 #endif
368 else if (OSName.startswith("nacl")) 447 else if (OSName.startswith("nacl"))
448 #if defined(LLVM_ENABLED_TARGET_OS_NATIVECLIENT)
369 return NativeClient; 449 return NativeClient;
450 #else
451 llvm_unreachable("ParseOS nacl w/out LLVM_ENABLED_TARGET_OS_NATIVECLIENT");
452 #endif
370 else 453 else
371 return UnknownOS; 454 return UnknownOS;
372 } 455 }
373 456
374 Triple::EnvironmentType Triple::ParseEnvironment(StringRef EnvironmentName) { 457 Triple::EnvironmentType Triple::ParseEnvironment(StringRef EnvironmentName) {
375 if (EnvironmentName.startswith("eabi")) 458 if (EnvironmentName.startswith("eabi"))
459 #if defined(LLVM_ENABLED_TARGET_ENV_EABI)
376 return EABI; 460 return EABI;
461 #else
462 llvm_unreachable("ParseEnv eabi w/out LLVM_ENABLED_TARGET_ENV_EABI");
463 #endif
377 else if (EnvironmentName.startswith("gnueabi")) 464 else if (EnvironmentName.startswith("gnueabi"))
465 #if defined(LLVM_ENABLED_TARGET_ENV_GNUEABI)
378 return GNUEABI; 466 return GNUEABI;
467 #else
468 llvm_unreachable("ParseEnv gnueabi w/out LLVM_ENABLED_TARGET_ENV_GNUEABI");
469 #endif
379 else if (EnvironmentName.startswith("gnu")) 470 else if (EnvironmentName.startswith("gnu"))
471 #if defined(LLVM_ENABLED_TARGET_ENV_GNU)
380 return GNU; 472 return GNU;
473 #else
474 llvm_unreachable("ParseEnv gnu w/out LLVM_ENABLED_TARGET_ENV_GNU");
475 #endif
381 else if (EnvironmentName.startswith("macho")) 476 else if (EnvironmentName.startswith("macho"))
477 #if defined(LLVM_ENABLED_TARGET_ENV_MACHO)
382 return MachO; 478 return MachO;
479 #else
480 llvm_unreachable("ParseEnv macho w/out LLVM_ENABLED_TARGET_ENV_MACHO");
481 #endif
383 else 482 else
384 return UnknownEnvironment; 483 return UnknownEnvironment;
385 } 484 }
386 485
387 void Triple::Parse() const { 486 void Triple::Parse() const {
388 assert(!isInitialized() && "Invalid parse call."); 487 assert(!isInitialized() && "Invalid parse call.");
389 488
390 Arch = ParseArch(getArchName()); 489 Arch = ParseArch(getArchName());
391 Vendor = ParseVendor(getVendorName()); 490 Vendor = ParseVendor(getVendorName());
392 OS = ParseOS(getOSName()); 491 OS = ParseOS(getOSName());
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 } 743 }
645 744
646 void Triple::setEnvironmentName(StringRef Str) { 745 void Triple::setEnvironmentName(StringRef Str) {
647 setTriple(getArchName() + "-" + getVendorName() + "-" + getOSName() + 746 setTriple(getArchName() + "-" + getVendorName() + "-" + getOSName() +
648 "-" + Str); 747 "-" + Str);
649 } 748 }
650 749
651 void Triple::setOSAndEnvironmentName(StringRef Str) { 750 void Triple::setOSAndEnvironmentName(StringRef Str) {
652 setTriple(getArchName() + "-" + getVendorName() + "-" + Str); 751 setTriple(getArchName() + "-" + getVendorName() + "-" + Str);
653 } 752 }
OLDNEW
« no previous file with comments | « lib/MC/MCObjectFileInfo.cpp ('k') | lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698