This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Subject: Removing the arg_index field from cpp_hashnode


On Tue, Oct 29, 2002 at 03:35:43PM -0800, Per Bothner wrote:
> Zack Weinberg wrote:
> 
> >The really gaping space waste in IDENTIFIER_NODEs is most of struct
> >tree_common (20 bytes of which only a few of the flag bits are
> >actually used for something); however, that's very hard to fix.
> 
> I have some other ideas for IDENTIFIER_NODE, but they are orthogonal,
> and I'll bring them on individually.
> 
> I only count 12 bytes for tree_common (on a 32-bit machine), unless
> there is some memory allocation overhead.

My bad, yes.  20 bytes is the total size of struct tree_identifier on
a 32-bit machine.

> Well, the rid_code (reserved word) and IDENTIFIER_LOCAL_VALUE
> (non-reserved identifier) are mutually exclusive, so for example
> we can put them both in the same union.  For example.

Could work.  I believe rid_code is only in struct cpp_hashnode because
there were eight convenient bits of padding going to waste there...

> Yes, saving another word is harder, and may require more radical
> changes.  We can save a number of fields in lang_ident, but I'll
> get to that in a later message.
> 
> But let's start with arg_index.

Fair 'nuff.  I look forward to seeing your patches.  (You're still
listed as a cpplib maintainer, you don't need me to rubber stamp
them.)

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]