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]

the size of tree_decl


tree_decl is a big structure (108 bytes on x86), a lot of tree_decls are
created during a compilation and a lot more are created on the
tree-ssa branch. 

It seems that there are some things in a tree_decl that could be
placed somewhere else, and save some space that way. 


  tree vindex;  -- seems to be only used in C++ and java
Can it be moved to the language specific part of the decl?


  /* In a FUNCTION_DECL, this is DECL_SAVED_TREE.  */
  tree saved_tree;
  /* In a FUNCTION_DECL, these are function data which is to be kept
     as long as FUNCTION_DECL is kept.  */
  tree inlined_fns;

These seem to be only used for FUNCTION_DECLs. Can they be added as
an attribute to FUNCTION_DECLs instead of taking up space for all the
decl types? 

Also not all decl types use these:

  tree assembler_name;
  tree section_name;
  rtx rtl;	/* RTL representation for object.  */

None of these fields are accessed very often, so it shouldn't be a
big problem that they are stored somewhere else. 

Comments? 

[unfortunately I won't have time to work on this for about a month, so
if somebody wants to implement this in the meanwhile, please do so]


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