This is the mail archive of the
mailing list for the GCC project.
Optimising/cleaning-up GSOC summary. What was done, future directions.
- From: Dimitrios Apostolou <jimis at gmx dot net>
- To: gcc at gcc dot gnu dot org
- Cc: Andrey Belevantsev <abel at ispras dot ru>
- Date: Tue, 21 Aug 2012 20:26:38 +0300 (EEST)
- Subject: Optimising/cleaning-up GSOC summary. What was done, future directions.
This year's GSOC has come to an end.
In a very brief summary, I achieved a few things this summer: Ported
patches from last year - some made it to mainline, extended old patches
and resubmitted them, wrote new but mostly small clean-ups/speed-ups. In a
[DF] Generate REFs in REGNO order
Show hash table stats when -fmem-report
[line-map] simple oneliner that speeds up track-macro-expansion
PR #53525 - track-macro-expansion performance regression
PR 51094 - fprint_w() in output_addr_const() reinstated
[libiberty] add obstack macros
Assembly output optimisations
A pool of small patches I had not sent until the end of GSOC. See full
strnlen in libiberty
All in all I plan to resubmit the patches that haven't made it to
mainline, after doing extra changes in some (like converting the hash
table statistics patch to be generic with only code in hashtab.c, though I
have doubts of its usefulness now that more and more code is moving to C++
However I couldn't complete some deeper stuff I started working on. For
example all the strlen() calls on identifier strings seem superfluous, so
I tried converting str to a flexible-array member in struct ht_identifier,
so that length is always at str[-4]. I hadn't noticed that it would
translate to a change in tree_identifier, which lead to a whole number of
changes in irrelevant points. I gave up after getting errors on gengtype
generated files. See more thorough reports concerning my failed attempts
Other than that, I think a good portion of my time this summer went to
coding a valgrind parser: from callgrind profile to SVG. It was first
presented at  and the source is at . I plan to document it a little
and make a proper project out of it. You can see it live at , just make
sure you click on the individual points.
I believe I've incorporated most ideas we discussed in Cauldron, please
let me know of any more ideas that come to mind. I am now in the process
of moving all the backend to the compile farm (waiting for a support
request to be processed since my requirements are pretty high) and last
step will be emailing @overseers for hosting somewhere more appropriate.
Overall, the experience was great and I am sure that even though summer
ends here my involvement with the GCC community will keep going. I had a
great time, I'm glad I met most of you people in Cauldron, I hope we keep
in touch. Thanks Andrey for your kind mentoring, thanks to everybody else
for comments, patch reviews, opinions, and finally thanks Google for
funding open source development in such an awesome manner!