[llvm] r215303 - ADT: remove MinGW32 and Cygwin OSType enum
Yonggang Luo
luoyonggang at gmail.com
Sun Aug 10 08:55:57 PDT 2014
/// \brief Tests whether the OS is Windows.
397 bool isOSWindows() const {
398 return getOS() == Triple::Win32 || isOSCygMing();
399 }
This function should be also simplified, getOS() == Triple::Win32 is
enough.
On Sun, 10 Aug 2014 07:12:20 +0800, Saleem Abdulrasool
<compnerd at compnerd.org> wrote:
> Author: compnerd
> Date: Sat Aug 9 18:12:20 2014
> New Revision: 215303
>
> URL: http://llvm.org/viewvc/llvm-project?rev=215303&view=rev
> Log:
> ADT: remove MinGW32 and Cygwin OSType enum
>
> Remove the MinGW32 and Cygwin types from the OSType enumeration. These
> values
> are represented via environments of Windows. It is a source of
> confusion and
> needlessly clutters the code. The cost of doing this is that we must
> sink the
> check for them into the normalization code path along with the spelling.
>
> Addresses PR20592.
>
> Modified:
> llvm/trunk/include/llvm/ADT/Triple.h
> llvm/trunk/lib/Support/Triple.cpp
> llvm/trunk/unittests/ADT/TripleTest.cpp
> llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
> llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h
>
> Modified: llvm/trunk/include/llvm/ADT/Triple.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/Triple.h?rev=215303&r1=215302&r2=215303&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/Triple.h (original)
> +++ llvm/trunk/include/llvm/ADT/Triple.h Sat Aug 9 18:12:20 2014
> @@ -111,7 +111,6 @@ public:
> UnknownOS,
> AuroraUX,
> - Cygwin,
> Darwin,
> DragonFly,
> FreeBSD,
> @@ -120,7 +119,6 @@ public:
> Linux,
> Lv2, // PS3
> MacOSX,
> - MinGW32, // i*86-pc-mingw32, *-w64-mingw32
> NetBSD,
> OpenBSD,
> Solaris,
> @@ -378,13 +376,11 @@ public:
> }
> bool isWindowsCygwinEnvironment() const {
> - return getOS() == Triple::Cygwin ||
> - (getOS() == Triple::Win32 && getEnvironment() ==
> Triple::Cygnus);
> + return getOS() == Triple::Win32 && getEnvironment() ==
> Triple::Cygnus;
> }
> bool isWindowsGNUEnvironment() const {
> - return getOS() == Triple::MinGW32 ||
> - (getOS() == Triple::Win32 && getEnvironment() ==
> Triple::GNU);
> + return getOS() == Triple::Win32 && getEnvironment() == Triple::GNU;
> }
> /// \brief Tests for either Cygwin or MinGW OS
>
> Modified: llvm/trunk/lib/Support/Triple.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Triple.cpp?rev=215303&r1=215302&r2=215303&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/Triple.cpp (original)
> +++ llvm/trunk/lib/Support/Triple.cpp Sat Aug 9 18:12:20 2014
> @@ -126,7 +126,6 @@ const char *Triple::getOSTypeName(OSType
> case UnknownOS: return "unknown";
> case AuroraUX: return "auroraux";
> - case Cygwin: return "cygwin";
> case Darwin: return "darwin";
> case DragonFly: return "dragonfly";
> case FreeBSD: return "freebsd";
> @@ -135,7 +134,6 @@ const char *Triple::getOSTypeName(OSType
> case Linux: return "linux";
> case Lv2: return "lv2";
> case MacOSX: return "macosx";
> - case MinGW32: return "mingw32";
> case NetBSD: return "netbsd";
> case OpenBSD: return "openbsd";
> case Solaris: return "solaris";
> @@ -273,7 +271,6 @@ static Triple::VendorType parseVendor(St
> static Triple::OSType parseOS(StringRef OSName) {
> return StringSwitch<Triple::OSType>(OSName)
> .StartsWith("auroraux", Triple::AuroraUX)
> - .StartsWith("cygwin", Triple::Cygwin)
> .StartsWith("darwin", Triple::Darwin)
> .StartsWith("dragonfly", Triple::DragonFly)
> .StartsWith("freebsd", Triple::FreeBSD)
> @@ -282,7 +279,6 @@ static Triple::OSType parseOS(StringRef
> .StartsWith("linux", Triple::Linux)
> .StartsWith("lv2", Triple::Lv2)
> .StartsWith("macosx", Triple::MacOSX)
> - .StartsWith("mingw32", Triple::MinGW32)
> .StartsWith("netbsd", Triple::NetBSD)
> .StartsWith("openbsd", Triple::OpenBSD)
> .StartsWith("solaris", Triple::Solaris)
> @@ -416,6 +412,9 @@ Triple::Triple(const Twine &ArchStr, con
> }
> std::string Triple::normalize(StringRef Str) {
> + bool IsMinGW32 = false;
> + bool IsCygwin = false;
> +
> // Parse into components.
> SmallVector<StringRef, 4> Components;
> Str.split(Components, "-");
> @@ -432,8 +431,11 @@ std::string Triple::normalize(StringRef
> if (Components.size() > 1)
> Vendor = parseVendor(Components[1]);
> OSType OS = UnknownOS;
> - if (Components.size() > 2)
> + if (Components.size() > 2) {
> OS = parseOS(Components[2]);
> + IsCygwin = Components[2].startswith("cygwin");
> + IsMinGW32 = Components[2].startswith("mingw");
> + }
> EnvironmentType Environment = UnknownEnvironment;
> if (Components.size() > 3)
> Environment = parseEnvironment(Components[3]);
> @@ -476,7 +478,9 @@ std::string Triple::normalize(StringRef
> break;
> case 2:
> OS = parseOS(Comp);
> - Valid = OS != UnknownOS;
> + IsCygwin = Comp.startswith("cygwin");
> + IsMinGW32 = Comp.startswith("mingw");
> + Valid = OS != UnknownOS || IsCygwin || IsMinGW32;
> break;
> case 3:
> Environment = parseEnvironment(Comp);
> @@ -556,16 +560,16 @@ std::string Triple::normalize(StringRef
> else
> Components[3] = getObjectFormatTypeName(ObjectFormat);
> }
> - } else if (OS == Triple::MinGW32) {
> + } else if (IsMinGW32) {
> Components.resize(4);
> Components[2] = "windows";
> Components[3] = "gnu";
> - } else if (OS == Triple::Cygwin) {
> + } else if (IsCygwin) {
> Components.resize(4);
> Components[2] = "windows";
> Components[3] = "cygnus";
> }
> - if (OS == Triple::MinGW32 || OS == Triple::Cygwin ||
> + if (IsMinGW32 || IsCygwin ||
> (OS == Triple::Win32 && Environment != UnknownEnvironment)) {
> if (ObjectFormat != UnknownObjectFormat && ObjectFormat !=
> Triple::COFF) {
> Components.resize(5);
>
> Modified: llvm/trunk/unittests/ADT/TripleTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/TripleTest.cpp?rev=215303&r1=215302&r2=215303&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/ADT/TripleTest.cpp (original)
> +++ llvm/trunk/unittests/ADT/TripleTest.cpp Sat Aug 9 18:12:20 2014
> @@ -190,7 +190,7 @@ TEST(TripleTest, Normalization) {
> ++Vendor) {
> C[1] = Triple::getVendorTypeName(Triple::VendorType(Vendor));
> for (int OS = 1+Triple::UnknownOS; OS <= Triple::Minix; ++OS) {
> - if (OS == Triple::Cygwin || OS == Triple::MinGW32 || OS ==
> Triple::Win32)
> + if (OS == Triple::Win32)
> continue;
> C[2] = Triple::getOSTypeName(Triple::OSType(OS));
>
> Modified: llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp?rev=215303&r1=215302&r2=215303&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
> (original)
> +++ llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp Sat
> Aug 9 18:12:20 2014
> @@ -139,8 +139,6 @@ protected:
> // The operating systems below are known to be sufficiently
> incompatible
> // that they will fail the MCJIT C API tests.
> - UnsupportedOSs.push_back(Triple::Cygwin);
> -
> UnsupportedEnvironments.push_back(Triple::Cygnus);
> }
>
> Modified: llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h?rev=215303&r1=215302&r2=215303&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h (original)
> +++ llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h Sat Aug
> 9 18:12:20 2014
> @@ -302,7 +302,6 @@ protected:
> // The operating systems below are known to be incompatible with
> MCJIT as
> // they are copied from the
> test/ExecutionEngine/MCJIT/lit.local.cfg and
> // should be kept in sync.
> - UnsupportedOSs.push_back(Triple::Cygwin);
> UnsupportedOSs.push_back(Triple::Darwin);
> UnsupportedEnvironments.push_back(Triple::Cygnus);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
--
Using Opera's mail client: http://www.opera.com/mail/
More information about the llvm-commits
mailing list