Skip to content

Commit

Permalink
Tidied up target triple OS detection. NFC
Browse files Browse the repository at this point in the history
Use Triple::isOS*() helper functions where possible.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222622 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
RKSimon committed Nov 22, 2014
1 parent 2b76e1a commit 53a43d3
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 14 deletions.
16 changes: 16 additions & 0 deletions include/llvm/ADT/Triple.h
Original file line number Diff line number Diff line change
Expand Up @@ -364,10 +364,26 @@ class Triple {
return isMacOSX() || isiOS();
}

bool isOSNetBSD() const {
return getOS() == Triple::NetBSD;
}

bool isOSOpenBSD() const {
return getOS() == Triple::OpenBSD;
}

bool isOSFreeBSD() const {
return getOS() == Triple::FreeBSD;
}

bool isOSSolaris() const {
return getOS() == Triple::Solaris;
}

bool isOSBitrig() const {
return getOS() == Triple::Bitrig;
}

bool isWindowsMSVCEnvironment() const {
return getOS() == Triple::Win32 &&
(getEnvironment() == Triple::UnknownEnvironment ||
Expand Down
2 changes: 1 addition & 1 deletion lib/MC/MCObjectFileInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ void MCObjectFileInfo::InitELFMCObjectFileInfo(Triple T) {
// platform.
EHSectionType = ELF::SHT_PROGBITS;
EHSectionFlags = ELF::SHF_ALLOC;
if (T.getOS() == Triple::Solaris) {
if (T.isOSSolaris()) {
if (T.getArch() == Triple::x86_64)
EHSectionType = ELF::SHT_X86_64_UNWIND;
else
Expand Down
2 changes: 1 addition & 1 deletion lib/Target/ARM/ARMSubtarget.h
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ class ARMSubtarget : public ARMGenSubtargetInfo {
bool isTargetIOS() const { return TargetTriple.isiOS(); }
bool isTargetLinux() const { return TargetTriple.isOSLinux(); }
bool isTargetNaCl() const { return TargetTriple.isOSNaCl(); }
bool isTargetNetBSD() const { return TargetTriple.getOS() == Triple::NetBSD; }
bool isTargetNetBSD() const { return TargetTriple.isOSNetBSD(); }
bool isTargetWindows() const { return TargetTriple.isOSWindows(); }

bool isTargetCOFF() const { return TargetTriple.isOSBinFormatCOFF(); }
Expand Down
3 changes: 1 addition & 2 deletions lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,7 @@ X86ELFMCAsmInfo::X86ELFMCAsmInfo(const Triple &T) {

// OpenBSD and Bitrig have buggy support for .quad in 32-bit mode, just split
// into two .words.
if ((T.getOS() == Triple::OpenBSD || T.getOS() == Triple::Bitrig) &&
T.getArch() == Triple::x86)
if ((T.isOSOpenBSD() || T.isOSBitrig()) && T.getArch() == Triple::x86)
Data64bitsDirective = nullptr;

// Always enable the integrated assembler by default.
Expand Down
12 changes: 4 additions & 8 deletions lib/Target/X86/X86Subtarget.h
Original file line number Diff line number Diff line change
Expand Up @@ -323,13 +323,13 @@ class X86Subtarget final : public X86GenSubtargetInfo {
/// Is this x86_64 with the ILP32 programming model (x32 ABI)?
bool isTarget64BitILP32() const {
return In64BitMode && (TargetTriple.getEnvironment() == Triple::GNUX32 ||
TargetTriple.getOS() == Triple::NaCl);
TargetTriple.isOSNaCl());
}

/// Is this x86_64 with the LP64 programming model (standard AMD64, no x32)?
bool isTarget64BitLP64() const {
return In64BitMode && (TargetTriple.getEnvironment() != Triple::GNUX32 &&
TargetTriple.getOS() != Triple::NaCl);
!TargetTriple.isOSNaCl());
}

PICStyles::Style getPICStyle() const { return PICStyle; }
Expand Down Expand Up @@ -403,12 +403,8 @@ class X86Subtarget final : public X86GenSubtargetInfo {
const Triple &getTargetTriple() const { return TargetTriple; }

bool isTargetDarwin() const { return TargetTriple.isOSDarwin(); }
bool isTargetFreeBSD() const {
return TargetTriple.getOS() == Triple::FreeBSD;
}
bool isTargetSolaris() const {
return TargetTriple.getOS() == Triple::Solaris;
}
bool isTargetFreeBSD() const { return TargetTriple.isOSFreeBSD(); }
bool isTargetSolaris() const { return TargetTriple.isOSSolaris(); }

bool isTargetELF() const { return TargetTriple.isOSBinFormatELF(); }
bool isTargetCOFF() const { return TargetTriple.isOSBinFormatCOFF(); }
Expand Down
4 changes: 2 additions & 2 deletions lib/Transforms/Instrumentation/AddressSanitizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -291,8 +291,8 @@ static ShadowMapping getShadowMapping(const Module &M, int LongSize) {
llvm::Triple TargetTriple(M.getTargetTriple());
bool IsAndroid = TargetTriple.getEnvironment() == llvm::Triple::Android;
bool IsIOS = TargetTriple.isiOS();
bool IsFreeBSD = TargetTriple.getOS() == llvm::Triple::FreeBSD;
bool IsLinux = TargetTriple.getOS() == llvm::Triple::Linux;
bool IsFreeBSD = TargetTriple.isOSFreeBSD();
bool IsLinux = TargetTriple.isOSLinux();
bool IsPPC64 = TargetTriple.getArch() == llvm::Triple::ppc64 ||
TargetTriple.getArch() == llvm::Triple::ppc64le;
bool IsX86_64 = TargetTriple.getArch() == llvm::Triple::x86_64;
Expand Down

0 comments on commit 53a43d3

Please sign in to comment.