summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm-c/OrcBindings.h
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2016-04-25 19:56:45 +0000
committerLang Hames <lhames@gmail.com>2016-04-25 19:56:45 +0000
commitef5a0ee2c3dad1c0e2fc51cf260a76d2acadf063 (patch)
treeb64ecf2ee46a302e33d6348b66917baf1bec1f2d /llvm/include/llvm-c/OrcBindings.h
parent074ea2851c4a4c5afeba2390d905eca062d66096 (diff)
downloadbcm5719-llvm-ef5a0ee2c3dad1c0e2fc51cf260a76d2acadf063.tar.gz
bcm5719-llvm-ef5a0ee2c3dad1c0e2fc51cf260a76d2acadf063.zip
[ORC] Thread Error/Expected through the RPC library.
This replaces use of std::error_code and ErrorOr in the ORC RPC support library with Error and Expected. This required updating the OrcRemoteTarget API, Client, and server code, as well as updating the Orc C API. This patch also fixes several instances where Errors were dropped. llvm-svn: 267457
Diffstat (limited to 'llvm/include/llvm-c/OrcBindings.h')
-rw-r--r--llvm/include/llvm-c/OrcBindings.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/llvm/include/llvm-c/OrcBindings.h b/llvm/include/llvm-c/OrcBindings.h
index 92e6ca310b1..4a2fa26abd4 100644
--- a/llvm/include/llvm-c/OrcBindings.h
+++ b/llvm/include/llvm-c/OrcBindings.h
@@ -37,6 +37,11 @@ typedef uint64_t (*LLVMOrcSymbolResolverFn)(const char *Name,
typedef uint64_t (*LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack,
void *CallbackCtx);
+typedef enum {
+ LLVMOrcErrSuccess = 0,
+ LLVMOrcErrGeneric
+} LLVMOrcErrorCode;
+
/**
* Create an ORC JIT stack.
*
@@ -49,6 +54,14 @@ typedef uint64_t (*LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack,
LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM);
/**
+ * Get the error message for the most recent error (if any).
+ *
+ * This message is owned by the ORC JIT Stack and will be freed when the stack
+ * is disposed of by LLVMOrcDisposeInstance.
+ */
+const char *LLVMOrcGetErrorMsg(LLVMOrcJITStackRef JITStack);
+
+/**
* Mangle the given symbol.
* Memory will be allocated for MangledSymbol to hold the result. The client
*/
@@ -58,7 +71,6 @@ void LLVMOrcGetMangledSymbol(LLVMOrcJITStackRef JITStack, char **MangledSymbol,
/**
* Dispose of a mangled symbol.
*/
-
void LLVMOrcDisposeMangledSymbol(char *MangledSymbol);
/**
@@ -72,16 +84,16 @@ LLVMOrcCreateLazyCompileCallback(LLVMOrcJITStackRef JITStack,
/**
* Create a named indirect call stub.
*/
-void LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack,
- const char *StubName,
- LLVMOrcTargetAddress InitAddr);
+LLVMOrcErrorCode LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack,
+ const char *StubName,
+ LLVMOrcTargetAddress InitAddr);
/**
* Set the pointer for the given indirect stub.
*/
-void LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack,
- const char *StubName,
- LLVMOrcTargetAddress NewAddr);
+LLVMOrcErrorCode LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack,
+ const char *StubName,
+ LLVMOrcTargetAddress NewAddr);
/**
* Add module to be eagerly compiled.
OpenPOWER on IntegriCloud