summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2014-02-10 23:26:14 +0000
committerManman Ren <manman.ren@gmail.com>2014-02-10 23:26:14 +0000
commitf3fc8c9d0953dbb275f00122afbe207ef7e76df4 (patch)
treeb1374660a820a6e15ff03115b06ef0f30679f5ca /include
parent4822c5fa52bcc581ac54046b1f5f28be6159bb4e (diff)
downloadllvm-f3fc8c9d0953dbb275f00122afbe207ef7e76df4.tar.gz
llvm-f3fc8c9d0953dbb275f00122afbe207ef7e76df4.tar.bz2
llvm-f3fc8c9d0953dbb275f00122afbe207ef7e76df4.tar.xz
LTO API: add lto_module_create_from_memory_with_path.
This function adds an extra path argument to lto_module_create_from_memory. The path argument will be passed to makeBuffer to make sure the MemoryBuffer has a name and the created module has a module identifier. This is mainly for emitting warning messages from the linker. When we emit warning message on a module, we can use the module identifier. rdar://15985737 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201114 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm-c/lto.h12
-rw-r--r--include/llvm/LTO/LTOModule.h8
2 files changed, 16 insertions, 4 deletions
diff --git a/include/llvm-c/lto.h b/include/llvm-c/lto.h
index fbad2b5686..bff63ad096 100644
--- a/include/llvm-c/lto.h
+++ b/include/llvm-c/lto.h
@@ -40,7 +40,7 @@ typedef bool lto_bool_t;
* @{
*/
-#define LTO_API_VERSION 8
+#define LTO_API_VERSION 9
/**
* \since prior to LTO_API_VERSION=3
@@ -176,6 +176,16 @@ extern lto_module_t
lto_module_create_from_memory(const void* mem, size_t length);
/**
+ * Loads an object file from memory with an extra path argument.
+ * Returns NULL on error (check lto_get_error_message() for details).
+ *
+ * \since prior to LTO_API_VERSION=9
+ */
+extern lto_module_t
+lto_module_create_from_memory_with_path(const void* mem, size_t length,
+ const char *path);
+
+/**
* Loads an object file from disk. The seek point of fd is not preserved.
* Returns NULL on error (check lto_get_error_message() for details).
*
diff --git a/include/llvm/LTO/LTOModule.h b/include/llvm/LTO/LTOModule.h
index c70afa4196..a70b71fa2e 100644
--- a/include/llvm/LTO/LTOModule.h
+++ b/include/llvm/LTO/LTOModule.h
@@ -100,7 +100,8 @@ public:
std::string& errMsg);
static LTOModule *makeLTOModule(const void *mem, size_t length,
llvm::TargetOptions options,
- std::string &errMsg);
+ std::string &errMsg,
+ llvm::StringRef path = "");
/// getTargetTriple - Return the Module's target triple.
const char *getTargetTriple() {
@@ -222,8 +223,9 @@ private:
llvm::TargetOptions options,
std::string &errMsg);
- /// makeBuffer - Create a MemoryBuffer from a memory range.
- static llvm::MemoryBuffer *makeBuffer(const void *mem, size_t length);
+ /// Create a MemoryBuffer from a memory range with an optional name.
+ static llvm::MemoryBuffer *makeBuffer(const void *mem, size_t length,
+ llvm::StringRef name = "");
};
#endif // LTO_MODULE_H