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.

Reply via email to