diff options
author | Igor Laevsky <igmyrj@gmail.com> | 2017-11-16 15:23:08 +0000 |
---|---|---|
committer | Igor Laevsky <igmyrj@gmail.com> | 2017-11-16 15:23:08 +0000 |
commit | 1404e4cc8165bf0e9809d20b63a35c7a83df9ead (patch) | |
tree | d55569150803442d9f476f17bf30935c29a3cbd0 /tools | |
parent | 0f099769a76819ac90aec196a4c85de78d985964 (diff) |
[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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318407 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp | 27 | ||||
-rw-r--r-- | tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp | 36 |
2 files changed, 0 insertions, 63 deletions
diff --git a/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp b/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp index cc886adeb78..f0a963b98d8 100644 --- a/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp +++ b/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<TargetMachine> TM; static std::unique_ptr<IRMutator> Mutator; -static std::unique_ptr<Module> parseModule(const uint8_t *Data, size_t Size, - LLVMContext &Context) { - auto Buffer = MemoryBuffer::getMemBuffer( - StringRef(reinterpret_cast<const char *>(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<IRMutator> createISelMutator() { std::vector<TypeGetter> Types{ Type::getInt1Ty, Type::getInt8Ty, Type::getInt16Ty, Type::getInt32Ty, diff --git a/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp b/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp index 1bbfa5b148b..7ca1d93d70d 100644 --- a/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp +++ b/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp @@ -37,42 +37,6 @@ static cl::opt<std::string> PassPipeline( static std::unique_ptr<IRMutator> Mutator; static std::unique_ptr<TargetMachine> TM; -// This function is mostly copied from the llvm-isel-fuzzer. -// TODO: Move this into FuzzMutate library and reuse. -static std::unique_ptr<Module> 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<Module>("M", Context); - - auto Buffer = MemoryBuffer::getMemBuffer( - StringRef(reinterpret_cast<const char *>(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<IRMutator> createOptMutator() { std::vector<TypeGetter> Types{ Type::getInt1Ty, Type::getInt8Ty, Type::getInt16Ty, Type::getInt32Ty, |