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]

Re: TREE_SYMBOL_REFERENCED, assemble_name, memory wastage


>>>>> "Zack" == Zack Weinberg <zackw@stanford.edu> writes:

    Zack> I'm looking into eliminating the IDENTIFIER_NODE used by
    Zack> DECL_ASSEMBLER_NAME.  In C++, where DECL_ASSEMBLER_NAME is

Note that C++ uses DECL_ASSEMBLER_NAME in one other (evil) way as
well; it figures out whether it has already create a vtable (and other
similar things) for a class not by looking for a CLASS_VTABLE or some
such, but by generating the mangled name for the vtable and then
grabbing the identifier node for that name, and then checking
IDENTIFIER_GLOBAL_VALUE.

Obviously, this breaks all kinds of abstraction layers.  The front-end
should know nothing of mangled names until late in the game; in fact,
they should be generated lazily as we actually need them.  (Think how
much memory would be saved, even relative to your improved scheme, by
not mangling the names of inline functions we don't care about, etc.)

I think we need to fix that first.  You've inspired me; maybe I'll
play with it over the weekend, after switching us to the new ABI.  The
new ABI mangling code is vastly cleaner than the old code and will
make doing this much easier.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

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