[GSoC] Improve code generation testing

Hallo/Hello to Matthias Braun sir and all developers
My name is Shivam Gupta, currently I am in third year of Bachelor of Engineering major in computer science from Samrat Ashok Technological Institute,India and completed compiler theory course with the Dragon book in last semester.

As a human nature we always want to try new things, test them, find problems, want to correct them or come with new solutions.Testing is one of most important and challenging task for the success of an application in realworld development.Use of MIR serialization format for testing the code generation passes is growing So also need of improving it.

I am interested in “improve code generation testing” project.This was listed but not implemented by any last two GSoC students so i think it is very useful for llvm current development.It require depth knowledge of llvm backend that i really want to gain.
As suggest possible projects are-

1.Create a single consistent format instead of the current mix of YAML + IR + MIR
2.Create a bugpoint mode (or a new tool) to reduce .mir test cases
3.Helper passes: strip IR information, rename blocks and values, debug information, extract functions or blocks…
4.Create tool to remove unnecessary information from existing tests

From last one month I am reading and practicing “Getting started with llvm core libraries” by Bruno Cardoso Lopes sir and Rafael Auler sir. I had completed kaleidoscope tutorial, read llvm blogs and llvm-dev mailing list archives,browse source code through viewvc, view patches on phabricator and bugzilla, watch videos of llvm developer’s meeting on youtube very profoundly.

I have intermediate knowledge of c++,python and some basic understanding of bash and yaml syntex.I will feel happy and proud towork with llvm community.

I have following questions related to project-
1.Please explain in a little detail about first point how it can be achieve and which part of code is affected.
2.I found this old blog by Mehdi Amini sir but inform if any work and discussion of this objective is going-on in recent year.
3.Which of the passes had been implemented given in 3rd point and any other new passes that should be included in llvm library?
4.Can you provide some examples of unnecessary information that should be remove from tests?
happy to hear you
Best regard
Shivam

Hi Shivam,

thanks for your interest. Unfortunately I will not be able to mentor any GSoC projects this year. A project from the 2019 list will be more likely to get accepted.

Hallo/Hello to Matthias Braun sir and all developers
My name is Shivam Gupta, currently I am in third year of Bachelor of Engineering major in computer science from Samrat Ashok Technological Institute,India and completed compiler theory course with the Dragon book in last semester.

As a human nature we always want to try new things, test them, find problems, want to correct them or come with new solutions.Testing is one of most important and challenging task for the success of an application in realworld development.Use of MIR serialization format for testing the code generation passes is growing So also need of improving it.

I am interested in “improve code generation testing” project.This was listed but not implemented by any last two GSoC students so i think it is very useful for llvm current development.It require depth knowledge of llvm backend that i really want to gain.
As suggest possible projects are-

1.Create a single consistent format instead of the current mix of YAML + IR + MIR
2.Create a bugpoint mode (or a new tool) to reduce .mir test cases
3.Helper passes: strip IR information, rename blocks and values, debug information, extract functions or blocks…
4.Create tool to remove unnecessary information from existing tests

To my knowledge none of these are implemented. Each of them is probably enough work as a project on its own, and the first is likely too big in scope for GSoC.

From last one month I am reading and practicing “Getting started with llvm core libraries” by Bruno Cardoso Lopes sir and Rafael Auler sir. I had completed kaleidoscope tutorial, read llvm blogs and llvm-dev mailing list archives,browse source code through viewvc, view patches on phabricator and bugzilla, watch videos of llvm developer’s meeting on youtube very profoundly.

I have intermediate knowledge of c++,python and some basic understanding of bash and yaml syntex.I will feel happy and proud towork with llvm community.

I have following questions related to project-
1.Please explain in a little detail about first point how it can be achieve and which part of code is affected.
2.I found this old blog by Mehdi Amini sir but inform if any work and discussion of this objective is going-on in recent year.
3.Which of the passes had been implemented given in 3rd point and any other new passes that should be included in llvm library?
4.Can you provide some examples of unnecessary information that should be remove from tests?
happy to hear you
Best regard
Shivam

Greetings
Matthias