summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move some CLI utils out of llvm-isel-fuzzer and into the libraryJustin Bogner2017-09-021-16/+2
| | | | | | | | FuzzMutate might not be the best place for these, but it makes more sense than an entirely new library for now. This will make setting up fuzz targets with consistent CLI handling easier. llvm-svn: 312425
* Specify the namespace in llvm::make_unique to fix the windows buildJustin Bogner2017-09-011-1/+1
| | | | llvm-svn: 312341
* llvm-isel-fuzzer: Stop including FuzzerInterface.hJustin Bogner2017-08-311-1/+0
| | | | | | | | | All this does is forward declare the interface functions (and make sure that they're `extern "C"`), but since we're using libFuzzer from the toolchain it doesn't make sense to include the local copy of the interface. llvm-svn: 312195
* Implement llvm-isel-fuzzer for fuzzing instruction selectionJustin Bogner2017-08-291-0/+213
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 llvm-svn: 311964
OpenPOWER on IntegriCloud