GSoC - Improve parallelism-aware analyses and optimizations

Hello! My name is Emanuel and I am an undergraduate student from Brazil (at the University of São Paulo) wanting to participate in this years GSoC on LLVM. Specifically, on the “Improve parallelism-aware analyses and optimizations” project.

I currently do research on autotuning of LLVM IR optimization passes and I am sitting for a class about parallel computing, but I have been studying the subject by my own for some weeks. I think I have an intermediate level of C++, but that is kind of difficult to measure. It would be my first contribution to open source, so I don’t have much to show :frowning:

In a sentence, I have a lot of passion, but not much experience, so I am writing to know if this is a deal breaker :frowning:

If not, what would be the next steps?

Hi Emanuel,

I’m not very familiar with this project but let’s try to help by CC’ing Johannes. Also, that discussion will probably be very interesting:!msg/llvm-dev/7-Bxop08Kh0/qKYFqUryAQAJ

In a sentence, I have a lot of passion, but not much experience, so I am writing to know if this is a deal breaker :frowning:
IMHO, no. :slight_smile:


Στις Δευ, 9 Μαρ 2020 στις 11:03 μ.μ., ο/η Emanuel Lima via llvm-dev <> έγραψε:

Hi Emanuel,

you took the first step already, you emailed the list :slight_smile:

You should start with a small task so you can see how the process works.
One would be to work on the TODO in OpenMPOpt.cpp line 366:
  // TODO: We should validate the declaration agains the types we expect.
The idea is that we match runtime calls there and we know what types
they should have (as part of their definition in OMPKinds.def). However,
for now we do not verify the types match the function we found with the
respective name. Does this make sense?

Feel free to look around that area and ask questions you might have.

You should also read documentation like
and always feel free to ask on the list or in IRC questions :slight_smile:


P.S. Given your autotuning experience you should consider the "ML"
     topics as well.

Awesome, thanks!

As per your suggestion, I read the description of these two projects:

Advanced Heuristics for Ordering Compiler Optimization Passes
Machine learning and compiler optimizations: using inter-procedural analysis to select optimizations

and they are amazing! Indeed, they are very close to my interest in autotuning. I didn’t see them on the list before.

If I choose to focus on these projects, where should I start?

I’d propose that you open a different thread for cleaner separation. Then hopefully one of the mentors will see it or someone will CC them.


Will do it. Thanks!

Hi Emanuel,

I'll reply to the other mail later, once I finished a GSoC dashboard.

I just wanted to check in if you started to work on the TODO. I think
someone else started to work on that one as well so we should avoid
duplicating work.


Hi Johannes.

I haven’t started on the TODO yet because, as I said on the other email, I believe the project about heuristics and ML is a much better fit for me, given that this is the theme of my research at the university.
I am just a little lost about what to do next regarding those projects, so I have been studying LLVM itself in the meantime.
It was such a pleasant surprise that a project so close to my research was available in GSoC. I hope I will be able to work on it.