GSOC 2018 - Textual LTO dump tool project

Hrishikesh Kulkarni hrishikeshparag@gmail.com
Mon Feb 19 08:30:00 GMT 2018


Hi,

I am Hrishikesh Kulkarni currently studying as an undergrad student in
Computer Engineering at Pune University, India. I find compilers quite
interesting as a subject,  and would like to apply to GSoC to gain some
understanding of how real-world compilers work. So far, I have managed to
build gcc and perform some simple tweaks to the codebase. In particular, I
would like to apply to the Textual LTO dump tool project.

As far as I understand, the motivation for LTO framework was to enable
cross file interprocedural optimizations, and for this purpose an ipa pass
is divided into following three stages:

   1.

   LGEN: The pass does a local analysis of the function and generates a
   “summary”, ie, the information relevant to the pass and writes it to LTO
   object file.
   2.

   WPA: The LTO object files are given as input to the linker, which then
   invokes the lto1 frontend to perform global ipa analysis over the
   call-graph and write optimized summaries to LTO object files
   (partitioning). The global ipa analysis is done over summary and not the
   actual function bodies.
   3.

   LTRANS: The partitions are read back, and the function bodies are
   reconstructed from summary and are then compiled to produce real object
   files.


If I understand correctly, the motivation for textual LTO dump tool is to
easily analyze contents of LTO object file, similar to readelf or objdump ?

Assume that LTO object file contains in pureconst section: 0b0110 (0b for
binary prefix) corresponding to values of fs->pure_const_state and
fs->state_previously_known.

If I understand correctly, the output of dump tool should then be:

pure_const pass:

pure_const_state = IPA_PURE (enum value of pure_const_state_e corresponding
to 0b01)

state_previously_known = IPA_NEITHER (enum value of pure_const_state_e
corresponding to 0b10)

Is this the expected output of the dump tool ?

I am reasonably familiar working with C, C++ and python. My prior
experience includes opportunities to work in areas of NLP. Some of my
accomplishments in the area include presenting project VicharDhara- A
thought Mapper that was selected among top five ideas in Accenture
Innovation Challenge among 7000 nationwide entries. My paper on this topic
won the best paper award in IEEE Conference ICCUBEA-2017. My previous work
was focused on simple parsers, student psychology, thought process
detection for team selection.

In the interim, I have been through a few docs on GCC and LTO [1][2][3] and
am trying to write a toy ipa pass to better understand LTO/IPA
infrastructure. I would be grateful for feedback on the textual LTO dump
tool.

[1] http://www.ucw.cz/~hubicka/slides/labs2013.pdf

[2] https://gcc.gnu.org/wiki/LinkTimeOptimizatio
<https://gcc.gnu.org/wiki/LinkTimeOptimization>

[3] https://gcc.gnu.org/onlinedocs/gccint/LTO-Overview.html

My two recent publications are listed below:

[A] Hrishikesh Kulkarni, "Contextual Data Representation Using Prime Number
Route Mapping Method and Ontology" IEEE Conference, ICCUBEA, 2017

[B] Hrishikesh Kulkarni, “Multi-Graph based Intent Hierarchy Generation to
Determine Action Sequence”, Springer Conference, ICDECT, December 2017, Pune

Thanks,

Hrishikesh Kulkarni



More information about the Gcc mailing list