I am an undergrad from India. This summer, I’m interested in working on fixing the fundamental issues in LLVM’s IR. I have a moderate understanding of LLVM IR. I also did my Google Summer of Code 2020 with LLVM, where I worked on unifying code motion checks present in loop transformation and analysis passes. (Phabricator) (GSoC archive)
I followed some previous messages about the project and found some resources to read. I visited alive2’s dashboard and found that I worked with these passes during my previous GSoC and have a good understanding of these passes.
I also read the paper and followed the slides. The paper closely describes the need for making changes in the LLVM IR, and it also describes few techniques to achieve the goal. Introducing poison, freeze, and more methods to weaken the undefined behavior sounds exciting and required in the LLVM IR.
I looked at the bug logs (link) of alive2, and I found that in a few passes, the reason for failure is the same (maybe different conditions but same reason). I am thinking of grouping all similar bugs and targeting the bugs in groups. I believe that the same type of error will trigger similar or related semantics fixtures.
I also watched your talks at PLDI 2017, 2016 LLVM developers’ meeting, and 2020 LLVM developers’ meeting and enjoyed all the talks. I also want to congratulate Nuno and Juneyoung on their paper getting selected in PLDI’21. I will be joining the conference as a student volunteer.
I liked the whole idea, and it looks pretty rational and exciting to me. I’ll start drafting the proposal after your initial feedback/suggestions. I’m really very excited to work on this.