The LLVM Project Blog

LLVM Project News and Details from the Trenches

Meet the LLVM Outreachy Interns!

The LLVM Project is participating in the Outreachy program for the first time. Two interns have been selected: Sushma Unnibhavi & Pooja Yadav.

Outreachy provides paid, remote internships with the goal of increasing diversity in open source. Outreachy interns work with mentors from open source communites on projects in programming, user experience, documentation, illustration, graphical design, data science, project marketing, user advocacy, or community event planning.

Pooja will be working with her mentor Kit Barton on her project to Create Documentation and Tutorials for the LLVM Global Instruction Selection Framework. Sushma will be working with her mentor Anshil Gandhi on her project to Implement GlobalISel for the M68k backend in LLVM. T

Thank you to the sponsors of the LLVM Foundation as their support has made these internships possible. In addition, we would like to give a huge thank you to Kit and Anshil for mentoring!

We asked Sushma and Pooja a few questions about themselves and the project they are working on. Here are their answers:

Sushma Unnibhavi

Can you tell us about yourself and your background?

I am Sushma, a final year Information Science Engineering undergrad from India. My hobbies include drawing, dancing and reading. I love writing code. I have been obsessed with the idea of using software to solve practical problems. I love to dig into problems and solve them with modern technology. I am constantly learning because I never settle. I focus on making high-quality decisions and love meeting new people and hearing new perspectives. My specialities include learning new skills and programming languages and problem-solving.

How did you hear about Outreachy and why did you apply?

I first came to know about Outreachy from my brother and searched for it right away. I found out that Outreachy seeks interns who are talented and have a zeal to learn while most of the other internships sought for the experience. I have always wanted to contribute to open source but never got proper guidance. Then I read the experiences of previous Outreachy interns which really motivated me. Many of them didn’t have any prior experience and they were supported so much from the mentors that made them reach greater heights. This made me think…..If they can, why can’t I? Hence I decided to apply to Outreachy. The way I have seen myself grow by contributing to LLVM in the one month time span of the contribution period is really surprising.

Which project will you be working on?

I will be implementing GloballSel for M68k. I will be adding minimal support necessary to select a function that returns sum of two i32 values. This includes some very naive and hardcoded argument/return lowering as well as handling of copy and add instructions throughout globalisel pipeline. I will also be implementing lowering for operations including add, sub, mul, div, comp, phi, load and store.

What are you most looking forward to during your internship?

One thing I am looking forward to in this internship is a great learning experience. When I first started contributing to LLVM, I thought I wouldn’t stand a chance because I had never worked on a project with such a huge codebase and that too working on compilers was a nightmare for me. Through this internship I want to let go of this fear and become more confident. I want to prove to myself that with hard work and consistency nothing is impossible.

Pooja Yadav

Can you tell us about yourself and your background?

Hi! I am Pooja Yadav from India. I am currently pursuing my undergraduate degree in Computer Science and Engineering at National Institute of Technology, Goa, India. I have been interested in computer science since high school and feel lucky to get the branch of my choice in one of the deemed universities in India for my Btech degree. I like badminton and skipping in sports and I was a national player in rope skipping at my high school. Sometimes, to relax myself I draw sketches and play with paints sometimes. It is really therapeutic.

I am also a supporter of equity and diversity in the tech field. I am the General Secretory of SPIE student chapter of our college and we have organised many events to support equity. diversity and inclusion.

How did you hear about Outreachy and why did you apply?

I heard about Outreachy in my second year of college from one of my seniors who is also an Outreachy alum. So, I also thought about participating in it. Outreachy provides great opportunity to people subjected to systematic bias and underrepresented in the technical industry. This was what encouraged me to participate in it. I got introduced to the vast ocean of computer science field in my first year of college and It seemed so overwhelming to me. So, I thought Outreachy would be a good place to start and that is how I got introduced to open source. I tried for Outreachy internship last year also but my final application was not selected. However, I learned a lot of things and was determined to try this year as well. I met many amazing people during the contribution period. All mentors and participants were very friendly and it was always a pleasure to talk to them. Mentors were very patient to answer all my questions, even the dumbest one. Also, the projects were so exciting and I wanted to dive into one of them because I knew that would raise my learning curve to another level. And this year the LLVM project on which I would be working got my interest. So, I decided to contribute to it and luckily I got selected for it.

Which project will you be working on?

The project on which I am working is ‘Create Documentation and Tutorials for the LLVM Global Instruction Selection Framework’. Working on it was quite adventurous during my contribution period and currently I am learning a lot of things. This project is about reading present documentation of GlobalISel and updating or making the required changes. Then make a good tutorial for GIobalISel which would help many contributors in future; beginners as well as professionals. For creating documentation and tutorials I have to understand everything about GlobalIsel. So I am learning along as I move ahead in my project.

What are you most looking forward to during your internship?

I had never heard about LLVM IR before. When I first read about it I was intrigued by the idea of improving the performance of a compiler with one more intermediate representation i.e machine IR and how we can write a generalised IR for compilers so that we don’t need to do it from scratch for every backend. I have learnt many things while working on this project, which include other things apart from this project topic like the concept of compilers, git, open source contributing rules, interaction with other contributors, communication skills, etc.

I am looking forward to learning more about this project and contributing my best to it. I like to explore different fields and this is a great opportunity to observe what other contributors are doing and learn from their project as well.