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

Side by Side Diff: include/llvm/ADT/Triple.h

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 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 | « configure ('k') | include/llvm/Analysis/NaCl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- llvm/ADT/Triple.h - Target triple helper class ----------*- C++ -*-===// 1 //===-- llvm/ADT/Triple.h - Target triple helper class ----------*- C++ -*-===//
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 #ifndef LLVM_ADT_TRIPLE_H 10 #ifndef LLVM_ADT_TRIPLE_H
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 214
215 /// getArch - Get the parsed architecture type of this triple. 215 /// getArch - Get the parsed architecture type of this triple.
216 ArchType getArch() const { return Arch; } 216 ArchType getArch() const { return Arch; }
217 217
218 /// getSubArch - get the parsed subarchitecture type for this triple. 218 /// getSubArch - get the parsed subarchitecture type for this triple.
219 SubArchType getSubArch() const { return SubArch; } 219 SubArchType getSubArch() const { return SubArch; }
220 220
221 /// getVendor - Get the parsed vendor type of this triple. 221 /// getVendor - Get the parsed vendor type of this triple.
222 VendorType getVendor() const { return Vendor; } 222 VendorType getVendor() const { return Vendor; }
223 223
224 // @LOCALMOD-BEGIN -- hardcode NaCl for NaCl builds, to help
225 // prune OS-specific code that is litered all over and not
226 // cleanly separated.
227 #if defined(__native_client__)
228 OSType getOS() const { return NaCl; }
229 ObjectFormatType getObjectFormat() const { return ELF; }
230 #else
224 /// getOS - Get the parsed operating system type of this triple. 231 /// getOS - Get the parsed operating system type of this triple.
225 OSType getOS() const { return OS; } 232 OSType getOS() const { return OS; }
226 233
234 /// getFormat - Get the object format for this triple.
235 ObjectFormatType getObjectFormat() const { return ObjectFormat; }
236 #endif
237 // @LOCALMOD-END
238
227 /// hasEnvironment - Does this triple have the optional environment 239 /// hasEnvironment - Does this triple have the optional environment
228 /// (fourth) component? 240 /// (fourth) component?
229 bool hasEnvironment() const { 241 bool hasEnvironment() const {
230 return getEnvironmentName() != ""; 242 return getEnvironmentName() != "";
231 } 243 }
232 244
233 /// getEnvironment - Get the parsed environment type of this triple. 245 /// getEnvironment - Get the parsed environment type of this triple.
234 EnvironmentType getEnvironment() const { return Environment; } 246 EnvironmentType getEnvironment() const { return Environment; }
235 247
236 /// getFormat - Get the object format for this triple.
237 ObjectFormatType getObjectFormat() const { return ObjectFormat; }
238
239 /// getOSVersion - Parse the version number from the OS name component of the 248 /// getOSVersion - Parse the version number from the OS name component of the
240 /// triple, if present. 249 /// triple, if present.
241 /// 250 ///
242 /// For example, "fooos1.2.3" would return (1, 2, 3). 251 /// For example, "fooos1.2.3" would return (1, 2, 3).
243 /// 252 ///
244 /// If an entry is not defined, it will be returned as 0. 253 /// If an entry is not defined, it will be returned as 0.
245 void getOSVersion(unsigned &Major, unsigned &Minor, unsigned &Micro) const; 254 void getOSVersion(unsigned &Major, unsigned &Minor, unsigned &Micro) const;
246 255
247 /// getOSMajorVersion - Return just the major version number, this is 256 /// getOSMajorVersion - Return just the major version number, this is
248 /// specialized because it is a common query. 257 /// specialized because it is a common query.
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 350
342 // If this is OS X, expect a sane version number. 351 // If this is OS X, expect a sane version number.
343 if (getOS() == Triple::MacOSX) 352 if (getOS() == Triple::MacOSX)
344 return isOSVersionLT(Major, Minor, Micro); 353 return isOSVersionLT(Major, Minor, Micro);
345 354
346 // Otherwise, compare to the "Darwin" number. 355 // Otherwise, compare to the "Darwin" number.
347 assert(Major == 10 && "Unexpected major version"); 356 assert(Major == 10 && "Unexpected major version");
348 return isOSVersionLT(Minor + 4, Micro, 0); 357 return isOSVersionLT(Minor + 4, Micro, 0);
349 } 358 }
350 359
360 // @LOCALMOD-BEGIN: Hardcode OS predicates to help prune code
361 // that is OS-specific, but not cleanly separated.
362 // Perhaps this would be cleaner if Triple.h was partly Table-gen'ed.
363 #if defined(__native_client__)
364 bool isMacOSX() const { return false; }
365 bool isiOS() const { return false; }
366 bool isOSDarwin() const { return false; }
367 bool isOSNetBSD() const { return false; }
368 bool isOSOpenBSD() const { return false; }
369 bool isOSFreeBSD() const { return false; }
370 bool isOSSolaris() const { return false; }
371 bool isOSBitrig() const { return false; }
372 bool isWindowsMSVCEnvironment() const { return false; }
373 bool isKnownWindowsMSVCEnvironment() const { return false; }
374 bool isWindowsItaniumEnvironment() const { return false; }
375 bool isWindowsCygwinEnvironment() const { return false; }
376 bool isWindowsGNUEnvironment() const { return false; }
377 bool isOSCygMing() const { return false; }
378 bool isOSMSVCRT() const { return false; }
379 bool isOSWindows() const { return false; }
380 bool isOSNaCl() const { return true; }
381 bool isOSLinux() const { return false; }
382 bool isOSBinFormatELF() const { return true; }
383 bool isOSBinFormatCOFF() const { return false; }
384 bool isOSBinFormatMachO() const { return false; }
385 #else
351 /// isMacOSX - Is this a Mac OS X triple. For legacy reasons, we support both 386 /// isMacOSX - Is this a Mac OS X triple. For legacy reasons, we support both
352 /// "darwin" and "osx" as OS X triples. 387 /// "darwin" and "osx" as OS X triples.
353 bool isMacOSX() const { 388 bool isMacOSX() const {
354 return getOS() == Triple::Darwin || getOS() == Triple::MacOSX; 389 return getOS() == Triple::Darwin || getOS() == Triple::MacOSX;
355 } 390 }
356 391
357 /// Is this an iOS triple. 392 /// Is this an iOS triple.
358 bool isiOS() const { 393 bool isiOS() const {
359 return getOS() == Triple::IOS; 394 return getOS() == Triple::IOS;
360 } 395 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 474
440 /// \brief Tests whether the OS uses the COFF binary format. 475 /// \brief Tests whether the OS uses the COFF binary format.
441 bool isOSBinFormatCOFF() const { 476 bool isOSBinFormatCOFF() const {
442 return getObjectFormat() == Triple::COFF; 477 return getObjectFormat() == Triple::COFF;
443 } 478 }
444 479
445 /// \brief Tests whether the environment is MachO. 480 /// \brief Tests whether the environment is MachO.
446 bool isOSBinFormatMachO() const { 481 bool isOSBinFormatMachO() const {
447 return getObjectFormat() == Triple::MachO; 482 return getObjectFormat() == Triple::MachO;
448 } 483 }
484 #endif
485 // @LOCALMOD-END
449 486
450 /// @} 487 /// @}
451 /// @name Mutators 488 /// @name Mutators
452 /// @{ 489 /// @{
453 490
454 /// setArch - Set the architecture (first) component of the triple 491 /// setArch - Set the architecture (first) component of the triple
455 /// to a known type. 492 /// to a known type.
456 void setArch(ArchType Kind); 493 void setArch(ArchType Kind);
457 494
458 /// setVendor - Set the vendor (second) component of the triple to a 495 /// setVendor - Set the vendor (second) component of the triple to a
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 /// architecture name (e.g., "x86"). 589 /// architecture name (e.g., "x86").
553 static ArchType getArchTypeForLLVMName(StringRef Str); 590 static ArchType getArchTypeForLLVMName(StringRef Str);
554 591
555 /// @} 592 /// @}
556 }; 593 };
557 594
558 } // End llvm namespace 595 } // End llvm namespace
559 596
560 597
561 #endif 598 #endif
OLDNEW
« no previous file with comments | « configure ('k') | include/llvm/Analysis/NaCl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698