On Wed, Apr 27, 2011 at 3:06 PM, Dimitrios Apostolou <ji...@gmx.net> wrote:
> Hello list,
>
> I am Dimitris (IRC nick: jimis), and this summer I will be working on
> optimising GCC, under the umbrella of Google Summer of Code. My proposal
> involves profiling and benchmarking in order to detect hotspots in both CPU
> and memory usage, and improving or rewriting the respective parts. By
> combining many partial improvements in all layers of GCC, hopefully by the
> end of summer a significant gain will show up.
>
> Here are some areas I'll look closer to, as shown by some early profiling I
> performed:
>
> * hash tables (both htab and symtab)
> * ggc_internal_alloc_stat() or maybe implementing proper memory management
> instead of garbage collection, for hottest callers
> * _cpp_lex_token/direct()
> * ira_build(), got to understand better the problem of register allocation
> and the algorithm GCC is using, before trying to improve it
> * bitmaps
> * coerce_template_parms in g++ (thanks jason!)
>
> Of course more areas for improvement will hopefully show up with further
> profiling. However at the present time I would appreciate the help of the
> community in the following areas:
>
> * what documentation should I read for understanding GCC, from a high level,
> architectural point of view?
> * I am sure that each one of you has different opinions on which parts
> should be improved. What do you propose?
> * Speedup_areas wiki page is very interesting, but lacks measurements to
> help me assess the weight of each area mentioned.  Any comments on those?

General comment: wiki pages tend to be outdated

> * How can I access already available work regarding optimisation? For
> example I just learned about --enable-gather-detailed-mem-stats (jason on
> IRC told me), or I see that general statistics in htab are being collected,
> what are the existing ways to process them?

Most information is only available in the GCC sources.

Oh, and of course most (if not all) low-hanging and beneficial speedup
work has likely been done already.  Don't expect your project to be easy.

Richard.

Reply via email to