Eliminate bitfield enum members.
TRAC #23653
Signed-off-by: Shannon Woods
Signed-off-by: Geoff Lang
Author: Nicolas Capens
diff --git a/src/compiler/Intermediate.cpp b/src/compiler/Intermediate.cpp
index 21098f0..a25fc08 100644
--- a/src/compiler/Intermediate.cpp
+++ b/src/compiler/Intermediate.cpp
@@ -1262,12 +1262,12 @@
return 0;
}
- const int leftCols = getCols();
- const int leftRows = getRows();
- const int rightCols = constantNode->getType().getCols();
- const int rightRows = constantNode->getType().getRows();
- const int resultCols = rightCols;
- const int resultRows = leftRows;
+ const char leftCols = getCols();
+ const char leftRows = getRows();
+ const char rightCols = constantNode->getType().getCols();
+ const char rightRows = constantNode->getType().getRows();
+ const char resultCols = rightCols;
+ const char resultRows = leftRows;
tempConstArray = new ConstantUnion[resultCols*resultRows];
for (int row = 0; row < resultRows; row++)
@@ -1347,8 +1347,8 @@
return 0;
}
- const int matrixCols = getCols();
- const int matrixRows = getRows();
+ const char matrixCols = getCols();
+ const char matrixRows = getRows();
tempConstArray = new ConstantUnion[matrixRows];
@@ -1378,8 +1378,8 @@
return 0;
}
- const int matrixCols = constantNode->getType().getCols();
- const int matrixRows = constantNode->getType().getRows();
+ const char matrixCols = constantNode->getType().getCols();
+ const char matrixRows = constantNode->getType().getRows();
tempConstArray = new ConstantUnion[matrixCols];
diff --git a/src/compiler/Types.h b/src/compiler/Types.h
index d861a76..0306965 100644
--- a/src/compiler/Types.h
+++ b/src/compiler/Types.h
@@ -140,7 +140,7 @@
public:
POOL_ALLOCATOR_NEW_DELETE(GlobalPoolAllocator)
TType() {}
- TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, int ps = 1, int ss = 1, bool a = false) :
+ TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, char ps = 1, char ss = 1, bool a = false) :
type(t), precision(p), qualifier(q), primarySize(ps), secondarySize(ss), array(a), layoutQualifier(TLayoutQualifier::create()), arraySize(0),
interfaceBlock(0), structure(0)
{
@@ -169,12 +169,12 @@
TLayoutQualifier getLayoutQualifier() const { return layoutQualifier; }
void setLayoutQualifier(TLayoutQualifier lq) { layoutQualifier = lq; }
- int getNominalSize() const { return primarySize; }
- int getSecondarySize() const { return secondarySize; }
- int getCols() const { ASSERT(isMatrix()); return primarySize; }
- int getRows() const { ASSERT(isMatrix()); return secondarySize; }
- void setPrimarySize(int ps) { primarySize = ps; }
- void setSecondarySize(int ss) { secondarySize = ss; }
+ char getNominalSize() const { return primarySize; }
+ char getSecondarySize() const { return secondarySize; }
+ char getCols() const { ASSERT(isMatrix()); return primarySize; }
+ char getRows() const { ASSERT(isMatrix()); return secondarySize; }
+ void setPrimarySize(char ps) { primarySize = ps; }
+ void setSecondarySize(char ss) { secondarySize = ss; }
// Full size of single instance of type
size_t getObjectSize() const;
@@ -294,18 +294,18 @@
return structure ? structure->containsArrays() : false;
}
-protected:
+private:
TString buildMangledName() const;
size_t getStructSize() const;
void computeDeepestStructNesting();
- TBasicType type : 6;
- TPrecision precision : 4;
- TQualifier qualifier : 7;
- unsigned int array : 1;
+ TBasicType type;
+ TPrecision precision;
+ TQualifier qualifier;
TLayoutQualifier layoutQualifier;
- int primarySize; // size of vector or cols matrix
- int secondarySize; // rows of a matrix
+ char primarySize; // size of vector or cols matrix
+ char secondarySize; // rows of a matrix
+ bool array;
int arraySize;
// 0 unless this is an interface block, or interface block member variable
@@ -332,8 +332,8 @@
TLayoutQualifier layoutQualifier;
TQualifier qualifier;
TPrecision precision;
- int primarySize; // size of vector or cols of matrix
- int secondarySize; // rows of matrix
+ char primarySize; // size of vector or cols of matrix
+ char secondarySize; // rows of matrix
bool array;
int arraySize;
TType* userDef;
@@ -353,12 +353,12 @@
line = ln;
}
- void setAggregate(int size)
+ void setAggregate(char size)
{
primarySize = size;
}
- void setMatrix(int c, int r)
+ void setMatrix(char c, char r)
{
ASSERT(c > 1 && r > 1 && c <= 4 && r <= 4);
primarySize = c;
@@ -391,19 +391,19 @@
return primarySize > 1 && secondarySize == 1;
}
- int getCols() const
+ char getCols() const
{
ASSERT(isMatrix());
return primarySize;
}
- int getRows() const
+ char getRows() const
{
ASSERT(isMatrix());
return secondarySize;
}
- int getNominalSize() const
+ char getNominalSize() const
{
return primarySize;
}
diff --git a/src/compiler/intermediate.h b/src/compiler/intermediate.h
index 28403da..362db9e 100644
--- a/src/compiler/intermediate.h
+++ b/src/compiler/intermediate.h
@@ -266,10 +266,10 @@
TBasicType getBasicType() const { return type.getBasicType(); }
TQualifier getQualifier() const { return type.getQualifier(); }
TPrecision getPrecision() const { return type.getPrecision(); }
- int getCols() const { return type.getCols(); }
- int getRows() const { return type.getRows(); }
- int getNominalSize() const { return type.getNominalSize(); }
- int getSecondarySize() const { return type.getSecondarySize(); }
+ char getCols() const { return type.getCols(); }
+ char getRows() const { return type.getRows(); }
+ char getNominalSize() const { return type.getNominalSize(); }
+ char getSecondarySize() const { return type.getSecondarySize(); }
bool isInterfaceBlock() const { return type.isInterfaceBlock(); }
bool isMatrix() const { return type.isMatrix(); }