From b5c7b1ff833d387db18d075e4c95fe5546ca138a Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Wed, 26 Nov 2014 16:54:40 +0000 Subject: [MCJIT] Reapply r222828 and r222810-r222812 with fix for MSVC move-op issues. llvm-svn: 222840 --- llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h | 48 +++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h (limited to 'llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h') diff --git a/llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h b/llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h new file mode 100644 index 00000000000..92310f3eb54 --- /dev/null +++ b/llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h @@ -0,0 +1,48 @@ +//===--- ObjectBuffer.h - Utility class to wrap object memory ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file declares a wrapper class to hold the memory into which an +// object will be generated. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_EXECUTIONENGINE_OBJECTBUFFER_H +#define LLVM_EXECUTIONENGINE_OBJECTBUFFER_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/Support/MemoryBuffer.h" +#include "llvm/Support/raw_ostream.h" + +namespace llvm { + +class ObjectMemoryBuffer : public MemoryBuffer { +public: + template + ObjectMemoryBuffer(SmallVector SV) + : SV(SV), BufferName("") { + init(this->SV.begin(), this->SV.end(), false); + } + + template + ObjectMemoryBuffer(SmallVector SV, StringRef Name) + : SV(SV), BufferName(Name) { + init(this->SV.begin(), this->SV.end(), false); + } + const char* getBufferIdentifier() const override { return BufferName.c_str(); } + + BufferKind getBufferKind() const override { return MemoryBuffer_Malloc; } + +private: + SmallVector SV; + std::string BufferName; +}; + +} // namespace llvm + +#endif -- cgit v1.2.3