mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
c9db4d6473
Summary: This CL is associated with a fuzzing effort to find bugs in LLVM. The first step is to fuzz llvm-as to find potential issues in generating IR. Both afl-fuzz and LLVM's lib/Fuzzer are being used. This CL introduces the executable that implements the in-process fuzzer using LLVM's lib/Fuzzer. The motivation for using lib/Fuzzer is based on time comparisons between afl-fuzz and lib/Fuzzer. Early results show that per-process, the lib/Fuzzer implemenation of llvm-as (i.e. this CL) generates over 30 times the number of mutations found by afl-fuzz, per hour runtime. The speedup is due to the removal of overhead of forking a process, and loading the executable into memory. I placed this under the tools directory, since it is an executable. It is also only conditionally built if (using cmake) the flag LLVM_USEE_SANITIZE_COVERAGE is used, so that it isn't built by default. Reviewers: kcc, filcab Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12438 llvm-svn: 246458
14 lines
301 B
CMake
14 lines
301 B
CMake
if( LLVM_USE_SANITIZE_COVERAGE )
|
|
set(LLVM_LINK_COMPONENTS
|
|
AsmParser
|
|
BitWriter
|
|
Core
|
|
Support
|
|
)
|
|
add_llvm_tool(llvm-as-fuzzer
|
|
llvm-as-fuzzer.cpp)
|
|
target_link_libraries(llvm-as-fuzzer
|
|
LLVMFuzzer
|
|
)
|
|
endif()
|