Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
people:holger [2007/07/16 08:30]
holger
people:holger [2007/08/20 11:37]
holger
Line 1: Line 1:
-==== GSoC 2007 - Codesize Reduction Project ==== 
- 
-== Things done so far == 
- 
-This is a summary of the things I did so far (including those that didn't work), 
-in roughly chronological order. 
- 
-  * Get LXR running and use it on the Etherboot source. 
-    Status: Didn't seem as useful as I had hoped. Will revisit and investigate other 
-    options once I get to the full __attribute__ makeover. 
-  * Go through other programs and check their Makefiles to discover potentially interesting 
-  compiler options. 
-    Status: (Re)discovered the extremly useful stack alignment option in the Linux Kernel. 
-            Has been the biggest win so far, already merged. 
-  * check effects of some other options, write script for mass compiles with different sets, another one to compare the effects. 
-    Status: useful options checked in to gccopt branch. separate branch for packed enums. (not merged yet) (more on the not so useful ones later, if i can still figure them out) 
-  * prepare code for conversion to regparm option 
-    Status: went through the code, located the functions that need standard calling conventions. committed to gccopt branch, not merged (or reviewed) yet. hope i got them all. 
-alternative may be attributing individual functions, but as i can't imagine a case where 
-it's not a win, just attributing those where it must not be used should be better. 
- 
-  * prepare zalloc changes, go through all occurences of malloc and see if that memory is cleared soon after. 
-    Status: branch merged (think i got them all, had some false positives at first though -> reverted) 
-  * go through make symcheck output, make appropriate changes to code 
-    Status: went through a lot of output, picked the ones that seem not too controversial, ​ 
-    checked in to symcheck branch. (not merged yet). Further plan is addressing the problem 
-    at the root and reduce the symcheck output by eliminating false positives, then address 
-    the remaining unclear ones (i do not claim to understand all the code i have read ;) 
-    No real solution discovered (yet), hackish ideas (eliminate by suffix, eliminate by 
-    exporting another symbol that says false positive) set aside for now. did research if 
-    better tools than nm and objdump exist, haven'​t found any yet. 
-  * test malloc attribute in preparation for the complete go-through all attributes. 
-    unfortunately no difference at all. local branch exists, may be included in the attr 
-    changes for completeness. 
- 
-somewhere in between: install git, learn to use it, research documentation on attributes 
-(found a nice page, will include the link later) 
- 
-==== Things to do in the second half of GSoC ==== 
- 
-  * Use LXR on current master, look into other tools if necessary (OpenGROK still looks 
-    nice, but I haven'​t set it up so far) 
-  * start annotating functions with attributes. (may be a large amount of work that might 
-    not lead to anything useful, but at least we know that then - and it might inspire 
-    ideas on other modifications to commonly used functions) 
-  * continue thinking about the symcheck problem. 
-  * write up some docs for the conversions that helped, give some background, maybe  
-    illustrated by examples of the generated code before and after. 
-  * write up docs on when functions (or other symbols) should be attributed by what. 
-  * whatever else comes up 
- 
- 
- 
- 
- 
- 
- 
- 
  

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code people:holger (generated for current page)