This is the mail archive of the gcc-patches@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: [patch] Share all integer constants


Zdenek Dvorak wrote:
Hello,


this patch makes all integer constants to be shared, instead of just the
small ones.  This brings relatively significant memory savings (on the
constant themselves, as well as on vectors kept at each type).



This is not OK. At least, not until you analyze why this makes GCC itself go slower.


the reason seems to be simply the overhead of caching (the original
overhead was about 1%, I reduced it to 0.5% by making the functions
to enter the constants into the hash table more efficient).  I
will try to think about how to reduce this further.

Would it not be better to keep using the vectors for small ints, and fall back on the cache for larger ones? That would keep the fast lookup for small ints. This would be a much smaller patch, local to build_int_cst_wide.

Is the extra work for caching the overflowed ones worth it?  I never
found much occurence of them in real programs.

nathan

--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk



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