From e714ef49afef7fc2d6f478974acf2c49860d05dc Mon Sep 17 00:00:00 2001 From: Igor Laevsky Date: Thu, 16 Nov 2017 15:23:08 +0000 Subject: [FuzzMutate] NFC. Move parseModule and writeModule from llvm-isel-fuzzer into FuzzMutate. This is to be able to reuse them in the llvm-opt-fuzzer. llvm-svn: 318407 --- llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp | 27 ------------------ llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp | 36 ------------------------ 2 files changed, 63 deletions(-) (limited to 'llvm/tools') diff --git a/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp b/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp index cc886adeb78..f0a963b98d8 100644 --- a/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp +++ b/llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp @@ -52,33 +52,6 @@ TargetTriple("mtriple", cl::desc("Override target triple for module")); static std::unique_ptr TM; static std::unique_ptr Mutator; -static std::unique_ptr parseModule(const uint8_t *Data, size_t Size, - LLVMContext &Context) { - auto Buffer = MemoryBuffer::getMemBuffer( - StringRef(reinterpret_cast(Data), Size), "Fuzzer input", - /*RequiresNullTerminator=*/false); - - SMDiagnostic Err; - auto M = parseBitcodeFile(Buffer->getMemBufferRef(), Context); - if (Error E = M.takeError()) { - errs() << toString(std::move(E)) << "\n"; - return nullptr; - } - return std::move(M.get()); -} - -static size_t writeModule(const Module &M, uint8_t *Dest, size_t MaxSize) { - std::string Buf; - { - raw_string_ostream OS(Buf); - WriteBitcodeToFile(&M, OS); - } - if (Buf.size() > MaxSize) - return 0; - memcpy(Dest, Buf.data(), Buf.size()); - return Buf.size(); -} - std::unique_ptr createISelMutator() { std::vector Types{ Type::getInt1Ty, Type::getInt8Ty, Type::getInt16Ty, Type::getInt32Ty, diff --git a/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp b/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp index 1bbfa5b148b..7ca1d93d70d 100644 --- a/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp +++ b/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp @@ -37,42 +37,6 @@ static cl::opt PassPipeline( static std::unique_ptr Mutator; static std::unique_ptr TM; -// This function is mostly copied from the llvm-isel-fuzzer. -// TODO: Move this into FuzzMutate library and reuse. -static std::unique_ptr parseModule(const uint8_t *Data, size_t Size, - LLVMContext &Context) { - - if (Size <= 1) - // We get bogus data given an empty corpus - just create a new module. - return llvm::make_unique("M", Context); - - auto Buffer = MemoryBuffer::getMemBuffer( - StringRef(reinterpret_cast(Data), Size), "Fuzzer input", - /*RequiresNullTerminator=*/false); - - SMDiagnostic Err; - auto M = parseBitcodeFile(Buffer->getMemBufferRef(), Context); - if (Error E = M.takeError()) { - errs() << toString(std::move(E)) << "\n"; - return nullptr; - } - return std::move(M.get()); -} - -// This function is copied from the llvm-isel-fuzzer. -// TODO: Move this into FuzzMutate library and reuse. -static size_t writeModule(const Module &M, uint8_t *Dest, size_t MaxSize) { - std::string Buf; - { - raw_string_ostream OS(Buf); - WriteBitcodeToFile(&M, OS); - } - if (Buf.size() > MaxSize) - return 0; - memcpy(Dest, Buf.data(), Buf.size()); - return Buf.size(); -} - std::unique_ptr createOptMutator() { std::vector Types{ Type::getInt1Ty, Type::getInt8Ty, Type::getInt16Ty, Type::getInt32Ty, -- cgit v1.2.3