]> granicus.if.org Git - llvm/commit
Re-apply "Introduce FuzzMutate library"
authorJustin Bogner <mail@justinbogner.com>
Mon, 21 Aug 2017 22:25:04 +0000 (22:25 +0000)
committerJustin Bogner <mail@justinbogner.com>
Mon, 21 Aug 2017 22:25:04 +0000 (22:25 +0000)
commit6b52665a1cf3c43fd8d3be5158163a0074d2cae0
treeedf8c36d7c1ac14bc665e91945bfd3fb3768e2a4
parent15e40f15261dfb3974a0742a3f9afe747d730bc2
Re-apply "Introduce FuzzMutate library"

Redo r311356 with a fix to avoid std::uniform_int_distribution<bool>.
The bool specialization is undefined according to the standard, even
though libc++ seems to have it.

Original commit message:

This introduces the FuzzMutate library, which provides structured
fuzzing for LLVM IR, as described in my [EuroLLVM 2017 talk][1]. Most
of the basic mutators to inject and delete IR are provided, with
support for most basic operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311392 91177308-0d34-0410-b5e6-96231b3b80d8
16 files changed:
include/llvm/FuzzMutate/IRMutator.h [new file with mode: 0644]
include/llvm/FuzzMutate/OpDescriptor.h [new file with mode: 0644]
include/llvm/FuzzMutate/Operations.h [new file with mode: 0644]
include/llvm/FuzzMutate/Random.h [new file with mode: 0644]
include/llvm/FuzzMutate/RandomIRBuilder.h [new file with mode: 0644]
lib/CMakeLists.txt
lib/FuzzMutate/CMakeLists.txt [new file with mode: 0644]
lib/FuzzMutate/IRMutator.cpp [new file with mode: 0644]
lib/FuzzMutate/LLVMBuild.txt [new file with mode: 0644]
lib/FuzzMutate/OpDescriptor.cpp [new file with mode: 0644]
lib/FuzzMutate/Operations.cpp [new file with mode: 0644]
lib/FuzzMutate/RandomIRBuilder.cpp [new file with mode: 0644]
unittests/CMakeLists.txt
unittests/FuzzMutate/CMakeLists.txt [new file with mode: 0644]
unittests/FuzzMutate/OperationsTest.cpp [new file with mode: 0644]
unittests/FuzzMutate/ReservoirSamplerTest.cpp [new file with mode: 0644]