This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
GCC Optimisation, Part 0: Introduction
- From: Dimitrios Apostolou <jimis at gmx dot net>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 27 Apr 2011 16:06:48 +0300 (EEST)
- Subject: GCC Optimisation, Part 0: Introduction
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?
* 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?
Any other advice will be appreciated.
Thank you in advance,
Dimitris
P.S. My mentor is stevenb, should I contact him or will he contact me?