summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorIgor Laevsky <igmyrj@gmail.com>2017-11-16 15:23:08 +0000
committerIgor Laevsky <igmyrj@gmail.com>2017-11-16 15:23:08 +0000
commit1404e4cc8165bf0e9809d20b63a35c7a83df9ead (patch)
treed55569150803442d9f476f17bf30935c29a3cbd0 /tools
parent0f099769a76819ac90aec196a4c85de78d985964 (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.cpp27
-rw-r--r--tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp36
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,