This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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