[llvm-dev] Applying for GSoC 2021(Fuzzing LLVM-IR Passes)

Johannes Doerfert via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 8 15:17:26 PST 2021


Having Alive2 as oracle would certainly be great.

Some rough ideas that can be worked on in parallel if we have multiple 
GSoC students:
   - mutation rules we know are sound, e.g., remove guarantees, add 1 
iteration loops, etc.
   - input generation, equivalence checking (alive, partial evaluation, ...)
   - fragment extraction from larger codes + input tracking -> 
reproducer splitting, faster equivalence checking, ...

We certainly can come up with more things.

Would either or both of your (or anyone else) be interested in 
co-mentoring students?
We have multiple interested ones already, even though my project 
description is lacking any detail.

~ Johannes


On 3/8/21 3:34 PM, Florian Hahn wrote:
>
>> On Mar 8, 2021, at 20:26, John Regehr via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> Hi folks, an angle related to IR fuzzing that I would be happy to help out with is using Alive2 as a test oracle.
>>
>> Using Alive2 incurs a set of problems (not all IR features supported, can be very slow) but has corresponding advantages (considers all inputs at once, handles UB gracefully).
>>
> If anyone’s interested in combing LLVM’s libFuzzer & Alive2, I’ve put up https://reviews.llvm.org/D96654 which uses Alive2 to verify candidates generated by fuzzing. It works out quite well, but I think there’s lots of potential to improve the ‘interestingness’ of the IR generated by libFuzzer.
>
> Cheers,
> Florian
>


More information about the llvm-dev mailing list