[GSOC] Potential Project Ideas

Hello,

My name is Siddharth. I’m a student studying math and computer science at the University of Toronto.

I’m interested in learning more about the LLVM compiler through GSoC. I have no prior experience with LLVM, but I have a strong interest in compilers, and I look forward to learning more.

I would like to pursue one of two potential projects: rewriting bugpoint, and moving optimizations out of the -instacombine pass and into InstructionSimplify.

Is anyone currently working on implementing these? Are these projects suitable for a beginner? Any guidance is much appreciated.

Regards,

Siddharth

Hi Siddharth,

As far as moving optimization out of instcombine to instsimplify pass is concerned, i had done this exercise some time back.

If you look at the ‘visit*’ functions in the instcombine pass, there is always a call to ‘simplify*’ functions which returns ‘Value*’.
It is then used to replace instruction with Value → replaceInstUsesWith(I, V) and return back; if simplify returns any Value. If ‘simplify*’ call
returns a NULL value, further processing of combining instructions take place.

There were instances though, that in this further processing, instructions combination results in a Value instead of a new Instruction.
Such instances could have been handled earlier in ‘simplify*’ call itself. Please look for such instances and try to move them to instsimplify
as a start point in this exercise (Not sure if still such instances exist, please search for them).

Instcombine and Instsimplify are good start point to understand LLVM compiler framework.

Regards,
Suyog Sarda