[PATCH] D36275: Implement llvm-isel-fuzzer for fuzzing instruction selection

Justin Bogner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 3 11:02:32 PDT 2017


bogner created this revision.
Herald added subscribers: kristof.beyls, igorb, mgorny, mcrosier, aemerson.

This implements a fuzzer tool for instruction selection, as described in my EuroLLVM 2017 talk <http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#2>.

The fuzzer must be given both libFuzzer args and llc-like args to configure the backend. For example, to fuzz AArch64 GlobalISel at -O0, you could invoke like so:

  llvm-isel-fuzzer <corpus dirs> -ignore_remaining_args=1 \
                   -mtriple arm64-apple-ios -global-isel -O0

If you would like to seed the fuzzer with an initial corpus, simply provide a directory of valid LLVM bitcode (not textual IR) as one of the corpus dirs.


Repository:
  rL LLVM

https://reviews.llvm.org/D36275

Files:
  tools/llvm-isel-fuzzer/CMakeLists.txt
  tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36275.109599.patch
Type: text/x-patch
Size: 8083 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170803/99117832/attachment.bin>


More information about the llvm-commits mailing list