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

Johannes Doerfert via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 8 12:20:50 PST 2021


Hi Chibin,

apologies for the late reply.

There have been multiple people that expressed interest in this project,
though it is open ended and we might want to tackle it from different 
angles.

Truth be told, anything towards testing LLVM would be OK with me. To name a
few areas: mutation testing inputs (C/C++/LLVM-IR/...), reordering or 
skipping
passes, creating an IR database for testing but maybe also other purposes.

I'd also be interested in fuzzing the OpenMP frontend and runtime (both 
on the
host and GPU) if that is something you might want to do. I think here is a
plethora of crashes and hangs to be found, not to mention the 
correctness issues
if we manage to do test generation for which we can verify the result.

Given that you have experience building and extending LLVM already, I 
think a
good next would be to narrow it down so you can start looking at the 
infrastructure
we want to test, e.g., the pass manager builder if we want to swap 
passes to find
hidden dependences between them. The existing fuzzer capabilities and 
the C++
mutation testing developed outside of LLVM 
(https://github.com/mull-project/mull)
are also good places to take a look.

Let me know what of the above areas, or areas of your choosing, might be 
most
interesting to you. We can also schedule a 30min chat, just send me an 
email with
times that would work for you.

~ Johannes


On 3/1/21 1:29 PM, Stefan Stipanovic wrote:
> +Johannes Doerfert <johannesdoerfert at gmail.com>
>
> Hi Chibin,
>
> Johannes will give you more information, but you can always start by
> familiarizing yourself with the Attributor.
>
> Stefan
>
> On Mon, Mar 1, 2021 at 6:11 PM 张驰斌 via llvm-dev <llvm-dev at lists.llvm.org>
> wrote:
>
>> Hi LLVM developers,
>>
>>        I am a junior student majoring in Computer Science at ShanghaiTech
>> University. I’ve been browsing through
>> https://llvm.org/OpenProjects.html#gsoc21 and found out that LLVM is
>> participating in Google Summer of Code 2021. I wanted to be sure to inquire
>> about it and get in touch soon.
>>
>>        One project idea really caught my eyes, ‘Fuzzing LLVM-IR Passes,’
>> striking chord with my experience. Currently, I am working with Professor
>> Hao Chen (Contact author of the fuzzer Angora) and his fellow graduate
>> students researching fuzzing.  My main contribution lies in the
>> experimental evaluation part. I’ve written many scripts to automate the
>> benchmarking of different fuzzers, e.g., building libraries with fuzzer
>> instrumentation (afl-clang-fast…), running fuzzers, and triaging and
>> analyzing fuzz-results with afl-cov. Our most recent paper is under review
>> at USENIX Security 2021. I’ve also written a dozen LLVM passes following
>> USCD’s advanced compiler course (Open-sourced code and notes at
>> https://github.com/chibinz/CSE231) as practice and contributed to the
>> basic block stubbing pass for coverage feedback in the prior research
>> project. If applicable, I see this as a golden opportunity to exercise what
>> I’ve learned about LLVM and fuzzing in real-world application and at LLVM
>> scale. This also a chance for me, as an LLVM user, to contribute back to
>> LLVM, following the FOSS spirit.
>>
>>        I wonder if this project is already occupied or still available? Are
>> there any ‘good first issue’ that I can start working on or code of
>> interest worth reading? I am aware the project description directs me to
>> reach out to mentor Johannes Doerfert on IRC, but somehow trying to connect
>> to the LLVM IRC channel using different clients always complains that the
>> server refused the connection…(Sorry, but I’m not familiar with IRC, this
>> is the first time trying…) Are there any other way to get in touch with the
>> mentor? I feel really excited and hope to hear from you soon.
>>
>>
>>
>> Sincerely,
>>
>> Chibin Zhang
>>
>> 2021.3.1
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>


More information about the llvm-dev mailing list