HomePhabricator

Implement llvm-isel-fuzzer for fuzzing instruction selection

Description

Implement llvm-isel-fuzzer for fuzzing instruction selection

This implements a fuzzer tool for instruction selection, as described
in my [EuroLLVM 2017 talk][1].

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.

[1]: http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html#2

Details

Committed
bognerAug 28 2017, 5:22 PM
Parents
rL311963: Do some more in the MySQL tests
Branches
Unknown
Tags
Unknown