This is the mail archive of the 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]

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 nutshell:

[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 thread:

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++ hash tables).

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 at

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 [1] and the source is at [2]. I plan to document it a little and make a proper project out of it. You can see it live at [3], 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!

Yours, Dimitris

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