[GSOC] Potential Project Ideas


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.



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.

Suyog Sarda