Hello GCC developers, I would like to work on one of the following idea in GSoC 2016 for GCC.
Function Reordering (Improvement) with LTO Inter-procedural value range propagation pass Implement tree level section anchors to improve code generation at ARM/PPC. I have done some reading for first and second topic. I would like your guidance. For first topic I have read Martin's master thesis and as far as I understand currently he has implemented function reordering with PGO support but this project would be using LTO support. Am I thinking it right ? For second project I have read the IPCP.c file in gcc source code which implements Inter-procedural constant propagation with call graphs and jump functions. According to Chapter 11, page 664 of Optimizing Compilers for Modern Architectures: A Dependence-based Approach book range propagation pass can be designed by extending IPCP. Here extensions to IPCP would be deciding ranges of variable from for loops, const assignment or if/else statement and modifying jump functions so that ranges can be calculated base on operations. Also we may use data structure for range as used in tree-vrp.c of gcc. For third project I have not started studying about it. Please suggest some readings. Apart from this I have learned how to write simple passes and plugins for gcc and its related data structures ( learned from Diego Novillo's slide ). I have also written some simple optimization passes with LLVM libs. Please provide more information or experimental patches to study. Sincerely, Vivek Pandya P.S : Actually I tried to contact Mr. Jan Hubicka as mentioned on idea page but it seems that he is not reachable on his mail address j...@suse.cz that is why I have mail to gcc dev list.