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]

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?




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