Developers generally use standard optimization pipelines like -O2 and -O3 to optimize their code. Manually crafted heuristics are used to determine which optimization passes to select and how to order the execution of those passes. However, this process is not tailored for a particular application, or kind of application, as it is designed to perform “reasonably well” for any input.
We want to improve the existing heuristics or replace the heuristics with machine learning-based models so that the LLVM compiler can provide a superior order of the passes customized per application.
The last milestone enabled feature extraction, and started investigating training a policy for selecting a more appropriate pass pipeline.
I’m interested in the topic and would also like to join the discussion to see what I can help out. I’m currently a compiler engineer developing in the RISC-V backend. I also have some experience modifying Loop Optimizations (LoopIdiomRecognize and LoopFlatten).
I don’t have to sign-up to GSoC, just trying to find something interesting
May you please add me to the slack?
Email (without quote): ‘firstname.lastname@example.org’
I am a masters student in computer engineering, and I’m interested to contributing to this project. I have programmed an llvm pass, and a front end to emit LLVM IR.
I have a background of programming iOS apps in Swift and also pitched a language feature few years ago (although it didn’t gain much traction)
Hi @mtrofin. I’m Ajay, a student at the University of Illinois at Urbana-Champaign interested in machine learning and compilers. I’ve actually been working on this very same problem for the last few months with CompilerGym, I’d love to discuss it further.
If this project is still open, could you please invite me to the Slack channel as well? My email is email@example.com.