r275095 - [NFC] Reorder fields of VersionTuple to reduce size

Vasileios Kalintiris via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 6 06:19:34 PDT 2016


It turns out that there's no need to revert this as the problem persists even without your patch. I'm preparing a patch that fixes the underlying issue.

- V. Kalintiris
________________________________________
From: cfe-commits [cfe-commits-bounces at lists.llvm.org] on behalf of Vasileios Kalintiris via cfe-commits [cfe-commits at lists.llvm.org]
Sent: 06 September 2016 10:12
To: Erik Pilkington; cfe-commits at lists.llvm.org
Subject: RE: r275095 - [NFC] Reorder fields of VersionTuple to reduce size

Hi Erik, would you mind reverting this temporarily? It broke our recursive builds buildbot because the re-ordering of VersionTuple's bitfields generates an i128 which our MIPS backend erroneously accepts for the o32 ABI.

- V. Kalintiris

________________________________________
From: cfe-commits [cfe-commits-bounces at lists.llvm.org] on behalf of Erik Pilkington via cfe-commits [cfe-commits at lists.llvm.org]
Sent: 11 July 2016 21:00
To: cfe-commits at lists.llvm.org
Subject: r275095 - [NFC] Reorder fields of VersionTuple to reduce size

Author: epilk
Date: Mon Jul 11 15:00:48 2016
New Revision: 275095

URL: http://llvm.org/viewvc/llvm-project?rev=275095&view=rev
Log:
[NFC] Reorder fields of VersionTuple to reduce size

Differential revision: http://reviews.llvm.org/D19934

Modified:
    cfe/trunk/include/clang/Basic/VersionTuple.h

Modified: cfe/trunk/include/clang/Basic/VersionTuple.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/VersionTuple.h?rev=275095&r1=275094&r2=275095&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/VersionTuple.h (original)
+++ cfe/trunk/include/clang/Basic/VersionTuple.h Mon Jul 11 15:00:48 2016
@@ -25,39 +25,44 @@ namespace clang {
 /// \brief Represents a version number in the form major[.minor[.subminor[.build]]].
 class VersionTuple {
   unsigned Major : 31;
+
+  unsigned UsesUnderscores : 1;
+
   unsigned Minor : 31;
-  unsigned Subminor : 31;
-  unsigned Build : 31;
   unsigned HasMinor : 1;
+
+  unsigned Subminor : 31;
   unsigned HasSubminor : 1;
+
+  unsigned Build : 31;
   unsigned HasBuild : 1;
-  unsigned UsesUnderscores : 1;

 public:
   VersionTuple()
-      : Major(0), Minor(0), Subminor(0), Build(0), HasMinor(false),
-        HasSubminor(false), HasBuild(false), UsesUnderscores(false) {}
+      : Major(0), UsesUnderscores(false), Minor(0), HasMinor(false),
+        Subminor(0), HasSubminor(false), Build(0), HasBuild(false) {}

   explicit VersionTuple(unsigned Major)
-      : Major(Major), Minor(0), Subminor(0), Build(0), HasMinor(false),
-        HasSubminor(false), HasBuild(false), UsesUnderscores(false) {}
+      : Major(Major), UsesUnderscores(false), Minor(0), HasMinor(false),
+        Subminor(0), HasSubminor(false), Build(0), HasBuild(false) {}

   explicit VersionTuple(unsigned Major, unsigned Minor,
                         bool UsesUnderscores = false)
-      : Major(Major), Minor(Minor), Subminor(0), Build(0), HasMinor(true),
-        HasSubminor(false), HasBuild(false), UsesUnderscores(UsesUnderscores) {}
+      : Major(Major), UsesUnderscores(UsesUnderscores), Minor(Minor),
+        HasMinor(true), Subminor(0), HasSubminor(false), Build(0),
+        HasBuild(false) {}

   explicit VersionTuple(unsigned Major, unsigned Minor, unsigned Subminor,
                         bool UsesUnderscores = false)
-      : Major(Major), Minor(Minor), Subminor(Subminor), Build(0),
-        HasMinor(true), HasSubminor(true), HasBuild(false),
-        UsesUnderscores(UsesUnderscores) {}
+      : Major(Major), UsesUnderscores(UsesUnderscores), Minor(Minor),
+        HasMinor(true), Subminor(Subminor), HasSubminor(true), Build(0),
+        HasBuild(false) {}

   explicit VersionTuple(unsigned Major, unsigned Minor, unsigned Subminor,
                         unsigned Build, bool UsesUnderscores = false)
-      : Major(Major), Minor(Minor), Subminor(Subminor), Build(Build),
-        HasMinor(true), HasSubminor(true), HasBuild(true),
-        UsesUnderscores(UsesUnderscores) {}
+      : Major(Major), UsesUnderscores(UsesUnderscores), Minor(Minor),
+        HasMinor(true), Subminor(Subminor), HasSubminor(true), Build(Build),
+        HasBuild(true) {}

   /// \brief Determine whether this version information is empty
   /// (e.g., all version components are zero).


_______________________________________________
cfe-commits mailing list
cfe-commits at lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________
cfe-commits mailing list
cfe-commits at lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list