[NFC] Reorder fields of VersionTuple to reduce size

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

llvm-svn: 275095
This commit is contained in:
Erik Pilkington 2016-07-11 20:00:48 +00:00
parent 0774aa96dc
commit f1996e567a
1 changed files with 23 additions and 18 deletions

View File

@ -25,39 +25,44 @@ namespace clang {
/// \brief Represents a version number in the form major[.minor[.subminor[.build]]].
class VersionTuple {
unsigned Major : 31;
unsigned Minor : 31;
unsigned Subminor : 31;
unsigned Build : 31;
unsigned HasMinor : 1;
unsigned HasSubminor : 1;
unsigned HasBuild : 1;
unsigned UsesUnderscores : 1;
unsigned Minor : 31;
unsigned HasMinor : 1;
unsigned Subminor : 31;
unsigned HasSubminor : 1;
unsigned Build : 31;
unsigned HasBuild : 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).