merge several fields in GlobalValue to use the same word, move CallingConv

field into SubclassData in Value.  This shrinks GlobalVAlue from 48->40
bytes, Function from 88->76, and GlobalVariable from 76->68.  This trims
4640 bytes off my testcase, reading a bc file without materializing any
functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36192 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2007-04-17 04:31:29 +00:00
parent 15b7823006
commit 18feb92e91
3 changed files with 13 additions and 11 deletions

View File

@@ -69,7 +69,10 @@ private:
ArgumentListType ArgumentList; ///< The formal arguments
ValueSymbolTable *SymTab; ///< Symbol table of args/instructions
ParamAttrsList *ParamAttrs; ///< Parameter attributes
unsigned CallingConvention; ///< Calling convention to use
// The Calling Convention is stored in Value::SubclassData.
/*unsigned CallingConvention;*/
friend class SymbolTableListTraits<Function, Module>;
@@ -113,8 +116,8 @@ public:
/// getCallingConv()/setCallingConv(uint) - These method get and set the
/// calling convention of this function. The enum values for the known
/// calling conventions are defined in CallingConv.h.
unsigned getCallingConv() const { return CallingConvention; }
void setCallingConv(unsigned CC) { CallingConvention = CC; }
unsigned getCallingConv() const { return SubclassData; }
void setCallingConv(unsigned CC) { SubclassData = CC; }
/// Obtains a constant pointer to the ParamAttrsList object which holds the
/// parameter attributes information, if any.